2016-07-07 4 views
3

По Rails 5, API самоцвет в слиты в.Комбинирование просмотров API и веб в Rails 5

Теперь, что это оставляет нас в случае, если у меня есть API для вызова с помощью AJAX с веб-страницы? Я ищу здесь лучшую практику. Конечно, я могу сделать маршрут с помощью сериализатора JSON. Затем есть возможность полностью отделить вызовы API в другом приложении.

Поскольку функциональность API вызывается по наследству class ApplicationController < ActionController::API Я не вижу возможности комбинировать его со стандартным вызовом ApplicationController < ActionController.

Я прав? Работает ли перегрузка на основе каждого контроллера?

ответ

5

Если вы используете режим --api, я думаю, что вы правы - вы не можете их объединить. И это сделано по дизайну - ActionController::API является подклассом ActionController::Metal. Идея состоит в том, чтобы иметь ActionController::API очень тощий и легкий. Но, включив режим api , вы создаете «контракт», в котором ваше приложение будет просто API, и все.

Но, вы всегда можете иметь как нормальный, так и контроллер API в том же приложении, если используете обычное приложение Rails. Затем будет доступен класс ActionController::API, поэтому вы можете иметь пространство имен API, содержащее только легкие контроллеры API, а остальные - в глобальном пространстве имен.

Например:

class UsersController < ApplicationController 
    * some code here * 
end 

и:

class API::V1::UsersController < ApplicationController::API 
    * some code here * 
end 

Надежда, что помогает!

Смежные вопросы