Jump to: navigation, search

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":{
+
    "recordset" : [
    "created_at":"2014-04-29T19:34:21.819615",
+
      {
    "version":1,
+
        "created_at" : "2014-04-29T19:34:21.819615",
    "zone_id":"766d7605-4c48-41fa-a9de-76692ed8051c",
+
        "version" : 1,
    "links":{
+
        "zone_id" : "766d7605-4c48-41fa-a9de-76692ed8051c",
        "self":"http://192.168.33.8:9001/v2/zones/766d7605-4c48-41fa-a9de-76692ed8051c/recordsets/06c3a2de-4e23-4143-98ab-6bf6d41ded26"
+
        "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,
+
        "ttl" : 3600,
    "description":null,
+
        "updated_at" : null,
    "type":"A",
+
        "description" : null,
    "id":"06c3a2de-4e23-4143-98ab-6bf6d41ded26",
+
        "type" : "A",
    "name":"gingerbread.com.",
+
        "id" : "06c3a2de-4e23-4143-98ab-6bf6d41ded26",
    "data":{
+
        "name" : "gingerbread.com.",
        "192.0.1.2",
+
        "data" : {
        "192.0.1.3"
+
            "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



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