Комментарии 10
Люблю такие статьи: лаконично и по делу! :) Спасибо!
Если у вас новый проект, то берём @hapi/hapi + Joi + hapi-swagger. Никаких дополнительных скриптов, всё формируется автоматически.
Интересно, кто вообще додумался использовать для одинаковых URL наборы GET/POST/PUT/DELETE? Что мешает использовать исключительно POST, а тип команды указывать в URL?
Например:
/orders/create
/orders/update
/orders/delete
Например:
/orders/create
/orders/update
/orders/delete
Что мешает использовать исключительно POST, а тип команды указывать в URL?
Здравый смысл
Если не ошибаюсь, это был Рой Филдинг
С точки зрения API нет принципиальной разницы между POST /users.delete?user_id=1
и DELETE /users/1
. Особенно если HTTP спрятан внутри языкового SDK, где POST /users
превращается просто в users.create
.
Не всё так просто.
Использование одного и тоже URL для разных команд часто приводит к тому, что разработчики фронтэнда путаются. Сложно перепутать назначение команд /users/delete и /users/update, а вот /users и /users — легко, как показывает практика проектов, в которых я работал.
Использование одного и тоже URL для разных команд часто приводит к тому, что разработчики фронтэнда путаются. Сложно перепутать назначение команд /users/delete и /users/update, а вот /users и /users — легко, как показывает практика проектов, в которых я работал.
Есть в этом зерно правды. Люди путаются между POST, PATCH и PUT для частичных обновлений, где последний запрещено использовать для этого, а первый предназначен для чего угодно. Аналогично с созданием — POST или PUT? Семантически можно использовать оба, но "есть нюанс". И не один. Поэтому неудивительно, что многие вендоры (vk, telegram, slack, flickr etc) используют RPC-like стиль, явно именуя адреса API.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Создание самодокументирующегося сервера на Node.JS