Difference between revisions of "Obsolete:Glance-api-v2-links"
Line 5: | Line 5: | ||
The jsonschema draft document specifies link description objects as part of a schema document. A link description object defines a format for inferring link relations from the attributes of a document that is an instance of such a schema. Instead of following this format, the present glance v2 api follows the openstack compute api example of embedding link description objects directly in non-schema documents. This blueprint proposes changing version two of the glance api to adopt the jsonschema canonical approach. | The jsonschema draft document specifies link description objects as part of a schema document. A link description object defines a format for inferring link relations from the attributes of a document that is an instance of such a schema. Instead of following this format, the present glance v2 api follows the openstack compute api example of embedding link description objects directly in non-schema documents. This blueprint proposes changing version two of the glance api to adopt the jsonschema canonical approach. | ||
+ | |||
+ | == Schemas and Examples == | ||
+ | |||
+ | === Images Schema === | ||
+ | |||
+ | <pre><nowiki> | ||
+ | GET /images/schema | ||
+ | { | ||
+ | "name": "images", | ||
+ | "properties": { | ||
+ | "images": { | ||
+ | "type": "array", | ||
+ | "items": { | ||
+ | "extends": "http://glance/v2/schemas/image" | ||
+ | } | ||
+ | }, | ||
+ | "first": {"type": "string"}, | ||
+ | "prev": {"type": "string"}, | ||
+ | "next": {"type": "string"}, | ||
+ | "last": {"type": "string"}, | ||
+ | "schema": {"type": "string"} | ||
+ | }, | ||
+ | "links": [ | ||
+ | { | ||
+ | "rel": "first", | ||
+ | "href": "{first}" | ||
+ | }, | ||
+ | { | ||
+ | "rel": "prev", | ||
+ | "href": "{prev}" | ||
+ | }, | ||
+ | { | ||
+ | "rel": "next", | ||
+ | "href": "{next}" | ||
+ | }, | ||
+ | { | ||
+ | "rel": "last", | ||
+ | "href": "{last}" | ||
+ | }, | ||
+ | { | ||
+ | "rel": "describedby", | ||
+ | "href": "{schema}" | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | === Images Response Example === | ||
+ | |||
+ | |||
+ | <pre><nowiki> | ||
+ | GET /images?marker=20&limit=10 | ||
+ | { | ||
+ | "images": [ | ||
+ | ... | ||
+ | ], | ||
+ | "first": "?limit=10", | ||
+ | "prev": "?marker=10&limit=10", | ||
+ | "next": "?marker=30&limit=10", | ||
+ | "last": "?limit=10&sort_dir=desc" | ||
+ | } | ||
+ | </nowiki></pre> |
Revision as of 03:41, 30 May 2012
Glance v2 api links
Rationale
The jsonschema draft document specifies link description objects as part of a schema document. A link description object defines a format for inferring link relations from the attributes of a document that is an instance of such a schema. Instead of following this format, the present glance v2 api follows the openstack compute api example of embedding link description objects directly in non-schema documents. This blueprint proposes changing version two of the glance api to adopt the jsonschema canonical approach.
Schemas and Examples
Images Schema
GET /images/schema { "name": "images", "properties": { "images": { "type": "array", "items": { "extends": "http://glance/v2/schemas/image" } }, "first": {"type": "string"}, "prev": {"type": "string"}, "next": {"type": "string"}, "last": {"type": "string"}, "schema": {"type": "string"} }, "links": [ { "rel": "first", "href": "{first}" }, { "rel": "prev", "href": "{prev}" }, { "rel": "next", "href": "{next}" }, { "rel": "last", "href": "{last}" }, { "rel": "describedby", "href": "{schema}" } ] }
Images Response Example
GET /images?marker=20&limit=10 { "images": [ ... ], "first": "?limit=10", "prev": "?marker=10&limit=10", "next": "?marker=30&limit=10", "last": "?limit=10&sort_dir=desc" }