Я не могу найти много информации в Интернете о различных подходах к созданию REST API в Rails; поэтому у меня есть два вопроса:
- Может кто-нибудь указать мне на некоторые статьи, которые показывают плюсы/минусы разных подходы?
- Не могли бы вы поделиться своими мыслями о плюсах и минусах следующих подходов?
Предлагаемые подходы
-
Используйте стандартные контроллеры для возврата XML, когда пользователи добавят
.xml
в конец URLПлюсы:
- Это встроенный в Rails и очень простой в использовании
- Выполняет тот же подход на основе ресурсов, что и Rails, поэтому для него будет легко существующие пользователи, чтобы понять/запомнить
Минусы:
- API не полностью отделен от основного сайта, сложнее поддерживать
- Люди могут предположить, что добавление
.xml
будет работать в местах, где это не
-
Использовать маршрутизацию с именами для создания отдельных контроллеров API, которые обрабатывают API только функции, но все же имеют доступ к тем же моделям, что веб-сайт использует
Плюсы:
- API в основном разделен.
- Все еще использует полнофункциональные контроллеры
Минусы:
- URL-адреса имеют форму site.com/api/resource.xml, которые могут заставить людей принять все ресурсы доступны
- API все еще является частью кода/проекта веб-сайта; таким образом, сложнее поддерживать
-
Использовать перенаправление маршрутов и ограничения для перенаправления всех вызовов API на стойку приложение
Плюсы:
- API полностью разделен
- Не требуется использовать ресурсо-полный стиль, если мы не хотим
- URL-адреса ясно показывают его API, и вы должны проверить документы, чтобы узнать, что доступно (по крайней мере, мой ум работает таким образом, я полагаю, что другие умы разума тоже)
Минусы:
- Сложнее использовать модели с кода сайта
- Легче поддерживать как отдельный проект, но это труднее интегрировать с существующий сайт
- Необходимо сохранять кодовые базы в синхронизации, поскольку модели могут изменяться для исправлений сайта/исправлений ошибок.