Создание бэкэнда для мобильных и веб

Я хочу создать приложение, которое будет доступно через веб-браузеры, а также будет доступно со смартфонов.

Каков наилучший способ сделать это, вот два варианта, о которых я думаю:

  1. Создание rails-сервера, который будет обслуживать браузеры, а также станет API-интерфейсом отдыха для мобильного приложения.

  2. Создайте отдельный сервер API отдыха, который будет доступен из мобильного приложения, а также с веб-сервера rails.

Как вы думаете? Я думаю, это должно быть довольно стандартно. У вас есть еще идеи для его создания?

2 ответа

Решение

Держите его на 1 сервере приложений (под управлением Rails)

-

API

Rails имеет очень сильную структуру, которую вы можете использовать для создания RESTful API довольно просто:

#config/routes.rb
namespace :api do
   resources :posts #-> domain.com/api/posts
end

#app/controllers/api/posts_controller.rb
Class API::PostsController < ApplicationController
   respond_to :json
   # ... your methods here
end

Это позволит вам отправлять запросы, которые вам нужны

-

MIME Типы

Вторая часть этого о mime types как указано snarf, Рельсы, через ActionDispatch::Http::MimeNegotiation промежуточное программное обеспечение, позволяет обрабатывать различные типы запросов, предоставляя вам возможность обрабатывать api наиболее эффективным способом

Это означает, что вы можете только json запросы к вашему api контроллер - это означает, что когда вы разрабатываете свое мобильное приложение, вы можете отправить api запросы на ваш сервер Rails, а не отдельный API один.

-

Рекомендация

Я очень рекомендую использовать один сервер, на котором запущены рельсы

Есть несколько причин для этого:

  1. Создание API в Rails на самом деле довольно просто
  2. Использование одного сервера позволяет обрабатывать все данные в одном месте.
  3. Поддержание единого сервера также гарантирует подлинность пользователя на всех платформах

Это может быть легко достигнуто с одним сервером.

Увидеть: ActionController::MimeResponds

В вашем контроллере:

class PeopleController < ApplicationController
  def index
    @people = Person.all

    respond_to do |format|
      format.html
      format.json { render json: @people }
    end
  end
  ...

Таким образом, вы можете ответить форматом данных (в данном случае html или json) в зависимости от типа запроса, который получает ваш контроллер.

http://mydomain.com/people.json
или же
http://mydomain.com/people.html

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