[http://creativecommons.org/licenses/by/3.0/]
This work is licensed under a CC
Attribution 3.0 Unported License [http://creativecommons.org/licenses/by/3.0/]
doing the right thing
test mode
mustIgnore
semantics allow safe interactions beyond closely coordinated groups
mustIgnore
is a popular and good choice for extension processing
mustUnderstand
)
<address> <name>Peter Pan</name> <street>Kensington Gardens 42</street> <city>2076 Neverland</city> </address>
<address> <name>Harry Potter</name> <street>4 Privet Drive</street> <city>Little Whinging</city> <title>Wizard</title> </address>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="address"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="street" type="xs:string"/> <xs:element name="city" type="xs:string"/> <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
{"address": { "name": "Peter Pan", "street": "Kensington Gardens 42", "city": "2076 Neverland" }}
{"address": { "name": "Harry Potter", "street": "4 Privet Drive", "city": "Little Whinging", "title": "Wizard" }}
"_links": { "self": { "href": "/orders/124" }, "http://example.com/docs/rels/basket": { "href": "/baskets/97213" }, "http://example.com/docs/rels/customer": { "href": "/customers/12369" } }, "total": 20.00, "currency": "USD", "status": "processing"
{ "_links": { "self": {"href": "/orders/124"}, "http://example.com/docs/rels/basket": {"href": "/baskets/97213"}, "http://example.com/docs/rels/customer": {"href": "/customers/12369"}, "http://example.com/docs/rels/cancel": {"href": "cancel"} }, "total": 20, "currency": "USD", "status": "processing" }
MAJOR.MINOR.PATCH
pattern and the following rules
MAJOR
version for incompatible API changes
MINOR
version for adding functionality in a backwards-compatible manner
PATCH
version for making backwards-compatible bug fixes
MINOR
may make sense to expose
PATCH
does not change API design or behavior apart from increasing quality
MINOR
does change API behavior but in a safe way
MAJOR
changes API behavior in ways that require client adaptations
PATCH
/MINOR
may make sense to expose inside the API
MAJOR
means that there is a different API for the same servicehttp://example.org/api/v2/
API-Version: 2.0.0
Accept: application/vnd.example.org.v2+json
API identity
keeping the API brand
simple version navigation
successor-version
links to the newer version of the API
latest-version
links to the newest version of the API
predecessor-version
links to the older version of the API
version-history
links to a resource about the version history
Sunset
ting [http://dret.typepad.com/dretblog/2015/08/http-sunset-header.html] can be used to signal upcoming sunsets on the HTTP level [http://webconcepts.info/concepts/http-header/Sunset]Sunset
[http://webconcepts.info/concepts/http-header/Sunset]Sunset
Sunset
any way they like
Sunset
policies on a gateway
dret.net/lectures/www-2019
[http://dret.net/lectures/www-2019]@dret
[http://twitter.com/dret]linkedin.com/in/netdret
[http://www.linkedin.com/in/netdret]dret.net/netdret/
[http://dret.net/netdret/]