zBit
@zBit
Full stack web developer

Как и где найти модули для Node.js для организации кошерного REST API?

Дурацкое ограничение на заголовок вопроса... Оригинальный вопрос звучит так: "Какие есть модули для Node.js для организации кошерного REST API?"

Чтобы код ответов отличался от 200 при разных методах запросов (POST, GET, PUT, DELETE).
Чтобы поддерживался Range из коробки.
Желательно ещё и фильтры, но не критично.

Пробовал Sails.js и не нашёл способа реализации поддержки Range без переписывания контроллера.
Ещё пробовал Loopback, там вообще даже не получилось найти быстрое решение для поддержки разных статусов при разных запросах.

Пока из испробованных вариантов где можно сделать все так как я хочу это: express.js и restify. Но они более низкоуровневые, чем sails.js и loopback. Поэтому приходится многое писать самому...

Может есть ещё варианты?
  • Вопрос задан
  • 4564 просмотра
Пригласить эксперта
Ответы на вопрос 4
Извиняюсь за оффтоп, но я бы посоветовал использовать JSON RPC API ( www.jsonrpc.org/specification ), для ноды он более родной. Да и субъективно более удобен чем REST
Ответ написан
MarcusAurelius
@MarcusAurelius Куратор тега Node.js
автор Impress Application Server для Node.js
REST есть величайшее мракобесие и маразм всех времен и народов. Берите RPC, как советуют. На голом примитивном механизме HTTP с его недоразвитым набором глаголов POST, GET, PUT, DELETE, которые невозможно расширить и кастомизировать, сложно разработать что-то более сложное, чем работа с файлами или с записями базы данных по принципу CRUD (CREATE, READ, UPDATE, DELETE). Когда же нужно сделать хоть что-то большее, над ресурсом, ввести свой глагол, то вся идеология рушится. Например, у меня есть нефтепровод с магистральными насосными агрегатами, и нужно управлять закрытием и открытием задвижек, параметрами регуляторов давления, мониторингом катодной защиты, другими подсистемами. Эти команды через POST или PUT посылать? Смешно, да? Тут нужно 5000 глаголов/методов ввести над 20ю ресурсами, а не 4 несчастных глагола над несчетным кол-вом ресурсов. Или даже над данными в БД мне нужно новые глаголы, например, хочу создать связь между двумя объектами или дать права пользователю на изменение параметра объекта или запустить отложенную задачу генерации отчетов на сервере, просто запустить и получить в ответ прогнозируемое время завершения, как это сделать на REST? Я уже не говорю о том, что операции могут быть вообще не над ресурсами. Операции могут быть над множествами, запросами (фильтрами, выборками, курсорами), над машиной состояний, над связями между несколькими ресурсами, над системой в целом или вообще над потоками данных, событий или технологическим оборудованием.
Ответ написан
Можете посмотреть в сторону loopback. Вот уж где плюшек в достатке.
Ответ написан
Prognosticator
@Prognosticator
TODO: Здесь будут ворованные умные мысли, типа мои
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы