REST API правильная структура URL для загрузки сущности, но с другими параметрами - PullRequest
0 голосов
/ 23 января 2019

У меня есть дилемма, я не знаю, как правильно ее оформить.

Притворимся, что у меня /customer конечная точка

Заказчик должен получить помощь следующими способами:

  1. По key (числовой)
  2. По id (буквенно-цифровой)
  3. По id с direction (перечисление)

Итак, если бы это было просто требование «по ключу», я бы создал следующее:

  1. GET /customer/1234
  2. POST /customer/1234
  3. DELETE /customer/1234

Но поскольку у меня есть дополнительные требования - я не уверен, как структурировать GET.Что приходит на ум:

  1. ПОЛУЧИТЬ /customer?key=1234
  2. ПОЛУЧИТЬ /customer?id=ABC
  3. ПОЛУЧИТЬ /customer?id=ABC&direction=next

Но я надеваюне очень нравится, как это выглядит.Есть ли какие-нибудь умные способы сделать его «ОТДЫХАМ», но охватить сценарии, которые я перечислил для ПОЛУЧЕНИЯ единой записи клиента?

1 Ответ

0 голосов
/ 23 января 2019

ИДЕАЛЬНО , вам нужен только один параметр для поиска клиента из GET. Все остальное должно быть сделано как filter или search путем передачи параметров запроса.

Например, большую часть времени вы используете id в customer/<id>, но когда вам нужны какие-то конкретные параметры запроса, просто спроектируйте свой сервер, чтобы вы могли оценить этот запрос:

GET /customers?key=<key>&limit=1 или GET /customers?key=<key>&direction=next&limit=1.

Параметры запроса не так плохи, как вы думаете.

Обратите внимание, что я следовал PURE RESTful API правилам, используя POST /customers/search is not the REST

Вот как бы я это сделал

...