Rails Api Base is a boilerplate project for JSON RESTful APIs. It follows the community best practices in terms of standards, security and maintainability, integrating a variety of testing and code quality tools. It's based on Rails 5 and Ruby 2.3.
Finally, it contains a plug an play Administration console (thanks to ActiveAdmin).
This template comes with:
- Schema
- Users table
- Admin users table
- Endpoints
- Sign up with user credentials
- Sign in with user credentials
- Sign out
- Reset password
- Get and update user profile
- Administration panel for users
- Rspec tests
- Code quality tools
- API documentation following https://apiblueprint.org/
- Clone this repo
- Install PostgreSQL in case you don't have it
- Create your
database.yml
andapplication.yml
file bundle install
- Generate a secret key with
rake secret
and paste this value into theapplication.yml
. rake db:create
rake db:migrate
rspec
and make sure all tests passrails s
- You can now try your REST services!
- ActiveAdmin for easy administration
- Annotate for doc the schema in the classes
- Better Errors for a better error page
- Brakeman for static analysis security
- Bullet help to kill N+1
- Byebug for debugging
- Carrierwave for file uploading
- Database Cleaner for cleaning test database
- DelayedJob for background processing
- Devise for basic auth
- Devise Token Auth for api auth
- Draper for decorators
- Factory Bot for testing data
- Faker for generating test data
- Figaro for handling environment variables
- Haml for the template engine
- Jbuilder for json views
- Letter Opener for previewing a mail in the browser
- Oj for optimized json
- Pry for enhancing the ruby shell
- Puma for the server
- Rack CORS for handling CORS
- Rails Best Practices for rails linting
- Reek for ruby linting
- RSpec for testing
- Rubocop for ruby linting
- Sendgrid for sending mails
- Shoulda Matchers adds other testing matchers
- Simplecov for code coverage
- Webmock for stubbing http requests
- Set your frontend URL in
config/initializers/rack_cors.rb
- Set your mail sender in
config/initializers/devise.rb
- Config your timezone accordingly in
application.rb
.
http://docs.railsapibase.apiary.io
With rake code_analysis
you can run the code analysis tool, you can omit rules with:
- Rubocop Edit
.rubocop.yml
- Reek Edit
config.reek
- Rails Best Practices Edit
config/rails_best_practices.yml
- Brakeman Run
brakeman -I
to generateconfig/brakeman.ignore
- Bullet You can add exceptions to a bullet initializer or in the controller
Rails Api Base is maintained by Rootstrap with the help of our contributors.