Как создать хорошо разработанный REST API в Perl с Mason?

Сайт, над которым я работаю, написан на Perl и Mason и размещен на Apache2 (mod_perl). Я ищу хорошо спроектированную, простую в использовании "среду" REST API или просто какой-то хорошо зарекомендовавший себя подход для ее создания. Mojolicious - не вариант, так как я отправляю запросы обратно в Apache2 через порт 80. Я едва мог найти что-либо связанное с этим в Google, и то, что я нашел, выглядит мусором. Я прошу тех из вас, кто разработал REST API в Perl и Mason, показать хороший пример.

Итак, что я нашел, чтобы проверить $r->method() чтобы увидеть, какой метод REST используется и выполнить код соответственно. Было бы неплохо, если бы это можно было как-то написать так:

POST => sub {
   ...
}
GET => sub { 
   ...
}
DELETE => sub {
   ...
}

Это была просто идея.

1 ответ

Мейсон нацелен на создание HTML-страниц. Это очень неправильный инструмент для создания API, который (предположительно) будет возвращать JSON, а не HTML.

Чтобы создать API, вы будете создавать структуры данных, а затем (будем надеяться) использовать одну из библиотек CPAN JSON для преобразования этих структур данных в JSON. Там действительно нет места для Мейсона в этом рабочем процессе.

И я не думаю, что вы должны ограничиваться использованием одной и той же технологии для вашего веб-сайта и вашего API. Если веб-сайт находится по адресу http://www.example.com/ вы можете разместить свой API по адресу http://api.example.com/ и запустить его на совершенно другой технологии (даже на другом веб-сервере).

Не зная больше о вашем проекте, трудно дать много конкретных советов. Но если у вас есть классы DBIx::Class для ваших данных, то стоит взглянуть на WebAPI:: DBIC - это будет гораздо проще, чем написание собственного кода с использованием фреймворка.

Другие вопросы по тегам