Обложка канала

Типа про IT

1563 @tipaproit

Типа про IT и вот это вот всё — full stack development и современные инструменты, подборки и рекомендации, интересные находки и практические советы. Профессиональный авторский контент.

Типа про IT

4 года назад
Открыть в
​​🤖 Довелось давеча заняться фундаментальным рефакторингом всей кодовой базы моего пет-проджекта, потому что сделать всё хорошо изначально — это не наш метод. Фронтенд я в итоге переписал полностью, обычное дело, а на бэкенде встал вопрос хоть какой-нибудь стандартизации, чтобы двигаться с новыми фичами дальше и не потерять контроль над ситуацией. Рефакторить так рефакторить, правильно? И как раз в это время ко мне постучался коллега, который подкинул ссылочку на их новый REST API Standard, который вобрал в себя лучшее и при этом не раздулся до размеров JSON:API, который я, прямо скажем, недолюбливаю. Это было вовремя. Я не поленился, прочитал всю спеку, проникся, и в итоге забрал себе часть контракта по работе с коллекциями, в частности cursor-based pagination. Потом перечитал URL Structure и задумался. А нахуя мы вообще соблюдаем REST? Зачем тянуть в новые стандарты старое соглашение, снова и снова? GET пусть остаётся для /health и для статики, абсолютно всё решается POST-запросами, в тело которых можно аккуратно уложить любую параметризацию, а не вот это вот. Действие (action, verb) спокойно выносится в URL, пусть он сам за себя говорит. В моём случае достаточно соблюдать наименование вида /[версия]/[сущность]/[действие]/[признак], например: /v1/damage/get/shallow — получить все т.н. “верхние маркеры”, опционально принимает набор фильтров и объект пагинации /v1/damage/create — очевидно /v1/airalarm/get/all — все объекты другой сущности /v1/auth — просто действие И так далее. POST only. Works like a charm. А вы что думаете об этом? In REST we trust или rest in peace?