Ответ REST — должен ли я помещать URL-адрес нового ресурса в заголовок, тело или и то, и другое?

Я собрал API, который отвечает на POST-запрос, помещая содержимое нового ресурса в тело ответа и URL-адрес нового ресурса в HTTP-заголовок ответа Location.

Пример запроса:

POST /api/v1/widgets HTTP/1.1
Content-type: application/json;
Accept: application/json;

{
    "name": "hugo@example.com",
    "price": "10",
}

Пример ответа:

HTTP 201 Created
Location: http://example.com/api/v1/widgets/123456

{
    'widget': 
    {
        'id': "123456",
        'created': "2012-06-22T12:43:37+0100",
        'name': "hugo@example.com",
        'price': "10",
    },
}

Кто-то поднял вопрос о том, что URL-адрес также должен быть в теле ответа. Есть ли лучшая практика в этом отношении?

17
задан Hugo Rodger-Brown 22 June 2012 в 15:36
поделиться