Я бы добавил новый маршрут
website.com / api / widget /
website.com / api / another_service /
И сделал бы контроллер, который кажется естественнымпод роутом API.
Затем я создал бы модуль с фильтрами до, но вы хотите проверить ключи API.
class WidgetController < ActionController::Base
include 'api_keyable'
:before_filer :validate_api_key
def create
#However you create a widget from the params.
# respond to XML, YAML, JSON, whatever
end
end
, если позже обнаружите, что хотите обрабатывать website.com/api/widgets onодно приложение и website.com/api/wadgets - другое, ваши конечные пользователи никогда не узнают, и ваш код не должен сильно меняться.