Как добавить публичный API в приложение Rails? - PullRequest
3 голосов
/ 20 декабря 2010

Я хотел бы открыть свое приложение Rails 2.3 (размещенное на Heroku) для разработчиков. Я думал о двух способах сделать это:

  1. Использование формата response_to | приложения и before_filter, разрешающий только авторизованным разработчикам ключи API
  2. Использование второй учетной записи Heroku, посвященной API, для обмена исходной базой данных приложения. Теперь, что будет лучше: Rails, Sinatra или Grape ?

Я знаю, что это неопределенный вопрос. У вас есть хорошие статьи или архитектурные образцы, которые могут мне помочь?

Спасибо

Кевин

Ответы [ 2 ]

7 голосов
/ 29 июля 2011

Мы используем виноград.Это просто и позволяет намного чище разделять и семантику.API на самом деле не контроллер.

4 голосов
/ 20 декабря 2010

Я бы добавил новый маршрут

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 - другое, ваши конечные пользователи никогда не узнают, и ваш код не должен сильно меняться.

...