Должен ли ответ остальных API содержать идентификатор ресурса?

Что является хорошей практикой или стандартом в остальных API, должен ли ответ сервера содержать идентификатор ресурса?

Например, этот ответ содержит идентификатор ресурса

GET /users/5
{
"user_id": 5
"first_name" : "John",
"last_name" : "Doe",
"minutes_active": 10
}

И это предполагает, что идентификатор ресурса указан в URL-адресе запроса.

GET /users/5
{
"first_name" : "John",
"last_name" : "Doe",
"minutes_active": 10
}

1 ответ

Решение

это предполагает, что идентификатор ресурса указан в URL-адресе запроса.

С точки зрения клиента, URI непрозрачны; если вы передаете информацию клиенту, помещая ее в URI, который он должен проанализировать, то вы потеряли график.

Если ваш API должен сделать идентификатор доступным для клиента, тогда идентификатор должен быть включен в представление ресурса.

Что вы подразумеваете под "URI непрозрачны; если вы передаете информацию клиенту, помещая ее в URI, который он должен анализировать..."? Мне кажется, что клиент создал URI, поэтому якобы он уже знает идентификатор...?

Как правило, клиент REST API следует ссылкам, а не создает URI. В HTTP-запросе нет ничего, что говорило бы о том, как клиент выбрал этот конкретный URI - это может быть закладка или ссылка в каком-то другом представлении, или результат заполнения формы.

Другие вопросы по тегам