В соответствии с этой прекрасной презентацией по проектированию интерфейсов RESTful предпочтительным способом реализации управления версиями является использование заголовка Accept -с использованием чего-то вроде:
GET /products HTTP/1.1
Host: example.com
Accept: application/vnd.com.myservice.v2+xml
Это отлично работает для типов контента XML -, но возможно ли использовать ту же схему для управления версиями JSON -, эквивалентной ?
То есть можно ли запросить:
GET /products HTTP/1.1
Host: example.com
Accept: application/vnd.com.myservice.v2+json
Ответ будет примерно таким::
HTTP/1.1 200 OK
Content-Type: application/vnd.com.myservice.v2+xml; charset=UTF-8
Allow: GET, POST
Red Stapler
3.14
false
и эквивалент JSON (типа):
HTTP/1.1 200 OK
Content-Type: application/vnd.com.myservice.v2+json; charset=UTF-8
Allow: GET, POST
[
{
id: "1234",
links: [
{
rel: "self",
href: "http://example.com/products/1234"
}
],
name: "Red Stapler",
price: {
currency: "EUR",
value: 3.14
},
availability: false
}
]