Как создать REST API для существующего приложения Ruby on Rails 5?
У меня есть приложение Rails 5 с ActionCable и Devise gem, размещенным на Heroku с 15K пользователями. Многие пользователи предложили выпустить мобильное приложение для веб-сайта. Я хочу начать с создания базового мобильного приложения для веб-сайта.
Когда я google, все, что я получаю, является только API-интерфейсом. Есть ли учебники или книги или какой-либо ресурс, который показывает, как создать REST API для существующего приложения Rails?
Может ли кто-нибудь любезно посоветовать, как это сделать? Как я могу аутентифицировать пользователей? Как использовать чат реального времени? Должен ли я использовать любой драгоценный камень? Пожалуйста, расскажите, как начать и передовую практику. благодаря
Ответы
Ответ 1
Есть ли учебники или книги или какой-либо ресурс, который показывает, как создать REST API для существующего приложения Rails?
Да. Этот Railscast очень полезен. Он рассказывает, как настроить базовые части ненадежного API для уже функционирующего (хотя и очень простого) Rails-приложения.
Ему несколько лет, но он все равно должен работать на Rails 5.
Ответ 2
Вы можете использовать виноградный жемчуг. Проверьте раздел интеграции Rails.
Поскольку у вас уже есть какие-то маршруты, просто поднимите неиспользуемый корневой путь для вашего API и установите его там:
mount Twitter::API => '/api'
Ответ 3
Я потратил дни, пытаясь понять это сам. В конце концов я смог сделать это с помощью гемов 'grape', 'rack-cors' и 'grape-active_model_serializer' и написал краткое руководство. Должно работать на Rails 5.2 и 6.0. Вы можете проверить это здесь: https://medium.com/@ryanwaldorf/how-to-add-an-api-to-an-existing-rails-app-1d2419ba91bd
Надеюсь, это поможет всем!
Ответ 4
Я бы рекомендовал вам начать поиск ответов JSON, в Rails у вас есть все необходимое для создания веб-приложения и API с теми же контроллерами. Вам нужно начать с 'reply_to' для JSON. Чтобы начать играть, используйте эшафот для создания контроллера, и он предоставит вам ответчика для JSON и HTML.
Ответ 5
Может быть, вы можете использовать activemodel serializers
камень, он является частью рельсов 5. Если вы в настоящее время не используется Rails 5 режиме API, вы можете добавить activemodel serializers
камень в ваш Gemfile
.
может быть, этот учебник поможет
Ответ 6
Я думаю, вы сначала начинаете с аутентификации API. Этот камень может удовлетворить вашу потребность: https://github.com/lynndylanhurley/devise_token_auth
Ответ 7
Поскольку вы хотите интегрировать RESTful API с существующим Rails-приложением, вы должны обратиться к этому руководству.
Это более удобное руководство по интеграции Grape (как отметил Ник Нилов) с вашим приложением Rails 5. В этом руководстве предполагается, что у вас уже есть существующее приложение Rails.
Надеюсь, это поможет!
Ответ 8
Для Ruby on Rails 5 вы можете создать приложение API, используя:
$ rails new my_api --api
Вы также можете изменить существующее приложение и сделать его одним API с несколькими незначительными изменениями в некоторых файлах.
И для вашего обычного обычного Rails-приложения вам просто нужно добавить respond_to
для JSON в ваш текущий контроллер. Пример:
def index
@tasks = Task.all
respond_to :html, :json
end
Для аутентификации пользователей вы можете проверить Devise
камень