Jump to: navigation, search

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



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"
       }
   }

}