This is a basic Rails 5 application with Doorkeeper, Grape & Swagger for getting to API building quickly.
You can view the live app and the Swagger-ui documentation.
This app is ready to deploy to Heroku
Set up the rails app and database with bundle install
and rake db:setup
Run ./start
to get the server running locally. It runs at http://localhost:3003
Copy .env.sample to .env
and replace the values with your own values.
Delete the imaginary item class and serializer, which are included for demonstration in the me/items endpoint.
This app includes omniauth-bike-index. For Bike Index login to work, create a Bike Index app at BikeIndex.org/oauth/applications/new and add the values from BIKEINDEX_APP_ID
and BIKEINDEX_APP_SECRET
to the .env
file.
Bike Index uses a similar grape, Swagger, doorkeeper setup—this is an example of creating an OmniAuth strategy for doorkeeper.
Grape is mounted in app/controllers/api, as described in the excellent Introduction to building APIs with Grape by Monterail, and part 2 of the series.
There are are other posts in the series which are worth reading, particularly OAuth Implicit Grant with Grape, Doorkeeper and AngularJS.
There is also a Railscast on doorkeeper.
Important things in the Gemfile:
Also important, but maybe not as necessary to know about:
If you want to change the name of the app, swap out:
GrapeDoorkeeper
in config/application.rb
grape-doorkeeper
in config/database.yml (multiple instances)grape-doorkeeper
in config/initializers/session_store.rb
/grape.doorkeeper/i
to catch any lingering ones like api_v1.html.haml
Rspec and guard - run bundle exec guard
to watch your spec files for changes and rerun tests for those files.
There is a spec for the api/v1/me
API route and for the swagger docs to help get you started.