2015-06-22 2 views
0

В настоящее время я работаю над REST api. Я несколько раз читал, как правильно обращаться с конечными точками, используя протокол (post, put, ...), чтобы определить, какое действие следует предпринять.REST api: правильно запросить действие

Предположим, у меня есть список котировок. У меня есть:

  • GET оконечных/цитаты, которые позволяют мне получить все мои ЦИТАТЫ
  • POST/цитата размещать новую котировку
  • GET/котировки/ID, чтобы получить одну цитату
  • PUT/quote/ID, чтобы обновить цитату.

Теперь я хочу, чтобы добавить способность:

  • доли котировка с другим членом
  • маркировать цитата как любимый
  • Снять отм

Что конечную точку я должен использовать для этого?/quote/ID/share кажется ужасной идеей. Я думал о POST to/quote/ID с параметром «action», который сообщает скрипту, какое действие выполнить в цитате, было бы правильно?

+0

Как действует? Пожалуйста, опишите, что такое «член». Являются ли участники ресурсами REST? –

ответ

2

Попробуйте отделить API от логики приложения. Из API вы GET цитаты и API теперь не должны заботиться о том, что вы делаете с этими данными. То же самое с маркировкой цитат в качестве избранных. Проблема вашего приложения и пользователя db как пометить что-то. Опять же, API должен заботиться только о правильном ответе на вас GET.

Подумайте о REST API как базе данных - вы получите данные оттуда, вы можете ОТКЛЮЧИТЬ или ПОЧТИ некоторые данные, но такие вещи, как совместное использование или маркировка, должны выполняться в приложении.

Редактировать

О конечных точек.

  • GET/POST/PUT /quote[s] должен заботиться только о котировках;
  • PUT/POST /user/{userId}/action с данными POST, такими как {"type": "share", "target": "otherUserId", "quoteId": 123}, может использоваться для сохранения данные о действиях в БД.
+0

Могли бы вы, возможно, подробнее остановиться? –

+0

@mef, я должен погрузиться более подробно? – kaaposc

+0

Я думаю, что предоставление примеров конечных точек, которые он может использовать для своего конкретного случая использования, было бы полезно. –

 Смежные вопросы

  • Нет связанных вопросов^_^