Как создать 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.

может быть, этот учебник поможет

Ответ 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 камень