#java #spring #api #rest
Вопрос:
Я создаю службу отдыха в Блэкджеке, и в настоящее время у меня есть 4 конечных точки GET:
/hit
/stand
/double down
/surrender
Я также мог бы создать только 1 конечную точку POST/PATCH, которая использует dto для отправки перемещения, или мне следует продолжать
использовать эти четыре uri?
Какой вариант был бы более спокойным/лучшим?
Заранее спасибо.
Комментарии:
1. Ресурсы-это существительные; в данном случае ресурс-это игра или рука в игре. Это не ресурсы (URL-адреса), это изменения состояния, которые сопровождаются одной конечной точкой мутации (POST).
Ответ №1:
Используйте одну конечную точку. Все эти действия/команды работают с одним и тем же набором данных.
Ответ №2:
Я бы предложил иметь единственную конечную точку REST, которая принимает тело запроса и возвращает ссылки как часть ответа.
- Когда ссылки возвращаются как часть ответа, мы реализуем HATEOS, что повышает надежность API. (достигает 3-го уровня модели зрелости Ричардсона)
- Клиент может понять ссылки, полученные в качестве части ответа, и может предпринять соответствующие следующие действия. Это избавляет клиента от необходимости совершать несколько вызовов REST только для выполнения одной задачи в целом.
- (Опыт личного развития) Если мы поддерживаем слишком много API-интерфейсов REST, особенно API GET, обслуживание кода увеличивает сверхурочную работу. Кроме того, он не является расширяемым по своей природе, т. Е. Если возникает новое требование, и у нас нет DTO, то мы должны определить несколько новых конечных точек. С другой стороны, если у нас меньше конечных точек с DTO, у нас есть гибкость для расширения самого DTO, чтобы иметь атрибуты, которые могут помочь нам достичь новой функциональности.
Для дальнейшего чтения это хорошая статья об ОТДЫХЕ.