Difference between revisions of "Designate/Blueprints/Recordset Record API Redesign"
(→API Details: Create / List / Patch / Put / Delete Recordset) |
(→API Details: Create / List / Patch / Put / Delete Recordset) |
||
Line 44: | Line 44: | ||
| DELETE || /zones/zone{id}/recordsets/recordset{id} || Delete the recordset and all records associated with it. | | 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" | ||
+ | } | ||
+ | } | ||
+ | } |
Revision as of 19:42, 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" } }
}