Создание бэкэнда для мобильных и веб
Я хочу создать приложение, которое будет доступно через веб-браузеры, а также будет доступно со смартфонов.
Каков наилучший способ сделать это, вот два варианта, о которых я думаю:
Создание rails-сервера, который будет обслуживать браузеры, а также станет API-интерфейсом отдыха для мобильного приложения.
Создайте отдельный сервер 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 types
как указано snarf
, Рельсы, через ActionDispatch::Http::MimeNegotiation
промежуточное программное обеспечение, позволяет обрабатывать различные типы запросов, предоставляя вам возможность обрабатывать api
наиболее эффективным способом
Это означает, что вы можете только json
запросы к вашему api
контроллер - это означает, что когда вы разрабатываете свое мобильное приложение, вы можете отправить api
запросы на ваш сервер Rails, а не отдельный API
один.
-
Рекомендация
Я очень рекомендую использовать один сервер, на котором запущены рельсы
Есть несколько причин для этого:
- Создание API в Rails на самом деле довольно просто
- Использование одного сервера позволяет обрабатывать все данные в одном месте.
- Поддержание единого сервера также гарантирует подлинность пользователя на всех платформах
Это может быть легко достигнуто с одним сервером.
Увидеть: 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