#api #rest #architecture #backend
#API #rest #архитектура #серверная часть
Вопрос:
Допустим, у меня есть 2 объекта в моем приложении: платформа и публикация. Публикации размещаются на платформах в течение определенного периода времени.
Platform { id: number; name: string }
Publication { id: number; publish_at: timestamp; unpublish_at: timestamp }
Итак, мне нужна конечная точка, куда я могу отправить массив временных интервалов (Array<{start: timestamp; end: timestamp}>) и получить массив платформ, где публикации не пересекаются с отправленными временными интервалами, в других мирах — платформах, доступных для публикации в эти временные интервалы.
Вначале я создал простую конечную точку POST с именем, подобным / api / available-platforms, с пользовательскими входными параметрами (Array<{start: timestamp; end: timestamp}>)
.
Сейчас я пытаюсь реализовать стиль архитектуры REST API в своем приложении. Как правильно создать конечную точку выше в REST way?
Ответ №1:
Наиболее рациональным подходом будет выполнение GET / platforms с интервальным фильтром в качестве параметра запроса (в данном случае в кодировке JSON). В случае, если ваш URL-адрес становится слишком длинным (вы столкнетесь с проблемой ограничения длины URL) Я предлагаю использовать сообщение с телом. Я знаю, что выполнение POST не слишком соответствует парадигме REST, но это лучше, чем выполнение GET с body (что намного менее стандартно).