Difference between revisions of "Designate/Blueprints/Recordset Record API Redesign"
(→API Details: Create / List / Patch / Put / Delete Recordset) |
(→List Recordsets (GET)) |
||
Line 46: | Line 46: | ||
==== List Recordsets (GET) ==== | ==== List Recordsets (GET) ==== | ||
When no id is specified all recordsets for the specified zone are returned. | When no id is specified all recordsets for the specified zone are returned. | ||
+ | |||
"Response" | "Response" | ||
− | { | + | { |
− | + | "recordset" : [ | |
− | + | { | |
− | + | "created_at" : "2014-04-29T19:34:21.819615", | |
− | + | "version" : 1, | |
− | + | "zone_id" : "766d7605-4c48-41fa-a9de-76692ed8051c", | |
− | + | "links" : { | |
− | + | "self" : "http://192.168.33.8:9001/v2/zones/766d7605-4c48-41fa-a9de-76692ed8051c/recordsets/06c3a2de-4e23-4143-98ab-6bf6d41ded26" | |
− | + | }, | |
− | + | "ttl" : 3600, | |
− | + | "updated_at" : null, | |
− | + | "description" : null, | |
− | + | "type" : "A", | |
− | + | "id" : "06c3a2de-4e23-4143-98ab-6bf6d41ded26", | |
− | + | "name" : "gingerbread.com.", | |
− | + | "data" : { | |
− | + | "192.0.1.2", | |
+ | "192.0.1.3" | ||
+ | } | ||
+ | ], | ||
+ | "links" : { | ||
+ | "self" : "http://192.168.33.8:9001/v2/zones/766d7605-4c48-41fa-a9de-76692ed8051c/recordsets/" | ||
} | } | ||
− | + | } | |
− | } |
Revision as of 19:53, 29 April 2014
Contents
1 Overview
Contents
Overview
Gerrit Patch | [] |
---|---|
Launchpad Blueprint | [1] |
This blueprint proposes to eliminate the Records resource and on keep the RecordSets resource.
The API for recordsets and records is too complicated. Currently, a user is forced to create a recordset before creating a record. This leads to a confusing user experience.Users will create, update and delete recordsets. When the user creates a recordset the code will determine if it should be a new recordset or a record under an existing recordset. However, the record will no longer be accessible as a separate resource; only as part of the recordset.
API Resource
Current API
/zones/zone{id}/recordsets/recordset{id}/records/record{id}
New API
/zones/zone{id}/recordsets/recordset{id}
API Details: Create / List / Patch / Put / Delete Recordset
Verb | Resource | Description |
---|---|---|
GET | /zones/zone{id}/recordsets | Returns all recordsets for a zone |
GET | /zones/zone{id}/recordsets/recordset{id} | Returns a specific recordset for a zone |
POST | /zones/zone{id}/recordsets | Creates a new recordset or adds a new record to an existing recordset |
PUT | /zones/zone{id}/recordsets/recordset{id} | Replaces all records in a recordset with the records specified in the message body |
PATCH | /zones/zone{id}/recordsets/recordset{id} | Adds the records specified in the message body to a recordset |
DELETE | /zones/zone{id}/recordsets/recordset{id} | Delete the recordset and all records associated with it. |
List Recordsets (GET)
When no id is specified all recordsets for the specified zone are returned.
"Response"
{ "recordset" : [ { "created_at" : "2014-04-29T19:34:21.819615", "version" : 1, "zone_id" : "766d7605-4c48-41fa-a9de-76692ed8051c", "links" : { "self" : "http://192.168.33.8:9001/v2/zones/766d7605-4c48-41fa-a9de-76692ed8051c/recordsets/06c3a2de-4e23-4143-98ab-6bf6d41ded26" }, "ttl" : 3600, "updated_at" : null, "description" : null, "type" : "A", "id" : "06c3a2de-4e23-4143-98ab-6bf6d41ded26", "name" : "gingerbread.com.", "data" : { "192.0.1.2", "192.0.1.3" } ], "links" : { "self" : "http://192.168.33.8:9001/v2/zones/766d7605-4c48-41fa-a9de-76692ed8051c/recordsets/" } }