REST API - Как спроектировать остальные API?
Меня немного смущает вопрос, когда создавать новую сущность в покое. У меня есть этот API для остальных реализован в узле:
GET api/v1/services
- получить все услуги
GET api/v1/services/{serviceId}/suppliers
- получить всех поставщиков для идентификатора услуги
Теперь я хочу добавить еще один API для получения всех поставщиков, независимо от того, какой сервис.
Является ли следующий подход хорошей практикой?
GET api/v1/services/suppliers
- получить всех поставщиков
PUT api/v1/services/suppliers/{supplierId}
- изменить по идентификатору поставщика
Или нам нужно создать новую организацию поставщиков?
1 ответ
Я надеюсь, что @wizard уже нашел ответ на свой вопрос. Но вот мои мысли.
Насколько я понимаю, ресурс "api/v1/services/ поставщики" не является верным способом вернуть всех поставщиков. Мы можем использовать REST Subresources для представления отношений, чтобы они были более читабельными. Но здесь ресурс поставщика не может использоваться за пределами родительского ресурса (сервисов).
Но в этом случае мы хотим получить всю информацию о поставщике, а также обновить информацию о конкретном поставщике. Следовательно, нам требуется гибкий API. Поэтому нам нужно создать другую конечную точку (/api/v1/ поставщики) для работы с деталями поставщика.
(/api/v1/ поставщики - получить все данные о поставщике (GET) и /api/v1/supplier /{supplierId} [PUT] для обновления определенного поставщика.