В настоящее время я запускаю веб-службу в контейнере сервлетов Apache Tomcat.Веб-служба имеет базовый URL-адрес и предоставляет данные моих приложений, используя следующую структуру:
http://[hostname]:[port]/path/to/root/[db_table_name]/[primary_key]?fields=name,...
HTTP-запрос GET к URL-адресу, подобному приведенному выше, возвращает строку в формате JSON.
Хотя документация для моего приложения описывает это как API RESTful, я запутался, потому что у меня сложилось впечатление, что настоящие API RESTful не используют строки запросов.Скорее, насколько я понимаю, настоящий restful API обеспечивает единую структуру в форме конечных точек ресурса.
Мои вопросы касаются того, как я могу создать собственный API для использования существующего API с помощью Node.js.Я не хочу переписывать логику приложения или вызовы базы данных;Мне просто нужно знать, как я могу создавать вызовы API с помощью Node.js (возможно, с помощью Express или какой-либо другой инфраструктуры) и позволить существующему API обрабатывать запрос.
Например, я мог бы написать код Node.js, используя модуль Express, имеющий несколько маршрутов, эти маршруты обрабатывали бы запросы клиентов, которые в свою очередь вызывали бы существующий API (то есть / path / to / root / [table_name)] / [pk] ... и вернуть ответ.
- Если мой сервер Apache Tomcat прослушивает порт 8080, как мне развернуть сервер Node.js для прослушивания на другом порту, а затем перенаправитьзапросы к существующему URL-адресу WS на порту 8080.
- Поддерживает ли инфраструктура Express явное указание корневого пути (например, http://localhost:3000/path/to/root/[table_name]/[pk]) в качестве корневого пути по умолчанию?
- Наконец, язнаю, что REST API поддерживают операции CRUD. В случае метода POST, имеет ли Express (или Node.js) встроенную логику для обработки дублированных запросов POST, чтобы дублированные записи не создавались в базе данных.
Я читаю различные статьи и учебники по REST, но думаю, что что-то упустил. Любая информация или совет, которые могут привести меня в правильном направлении, могуточень цениться.