Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/randikabanura/awesome-rails-api-gems

A collection of awesome Ruby Gems for Rails API development.
https://github.com/randikabanura/awesome-rails-api-gems

List: awesome-rails-api-gems

Last synced: 3 months ago
JSON representation

A collection of awesome Ruby Gems for Rails API development.

Awesome Lists containing this project

README

        

# Awesome Rails API Gems [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)
A collection of awesome Ruby Gems for Rails API development.

The goal is to help every Rails developer to build an awesome Rails API services.

### Rails API Gem List
* [API Frameworks](#api-frameworks)
* [Authentication](#authentication)
* [Authorization](#authorization)
* [Serializers](#serializers)
* [HTTP clients](#http-clients)
* [Documentation](#documentation)
* [Admin Panel](#admin-panel)
* [File Uploaders](#file-uploaders)
* [Logging](#logging)
* [Coding Style](#coding-style)
* [Testing](#testing)

## API Frameworks
* [Grape](https://github.com/ruby-grape/grape) - Microframework to create REST-ful APIs in Ruby.
* [Rails::API](https://github.com/rails-api/rails-api) - Rails for API-only applications.

## Authentication
* [devise_token_auth](https://github.com/lynndylanhurley/devise_token_auth) - Token-based authentication for Rails JSON APIs. Designed to work with jToker and ng-token-auth.
* [devise-jwt](https://github.com/waiting-for-dev/devise-jwt) - JWT token authentication with devise and rails.
* [devise-api](https://github.com/nejdetkadir/devise-api) - This is a convenient way to add authentication to your Ruby on Rails application using the devise gem.
* [Doorkeeper](https://github.com/doorkeeper-gem/doorkeeper) - Doorkeeper is an OAuth 2 provider for Ruby on Rails / Grape.

## Authorization
* [Pundit](https://github.com/varvet/pundit) - Minimal authorization through OO design and pure Ruby classes.
* [cancancan](https://github.com/CanCanCommunity/cancancan) - The authorization Gem for Ruby on Rails.
* [Rolify](https://github.com/RolifyCommunity/rolify) - Role management library with resource scoping.

## Serializers
* [ActiveModel::Serializers](https://github.com/rails-api/active_model_serializers) - Serializer brings convention over configuration to your JSON generation.
* [Jbuilder](https://github.com/rails/jbuilder) - Jbuilder gives you a simple DSL for declaring JSON structures that beats massaging giant hash structures. This is particularly helpful when the generation process is fraught with conditionals and loops.
* [jsonapi-serializer](https://github.com/jsonapi-serializer/jsonapi-serializer) - A fast JSON:API serializer for Ruby (fork of Netflix/fast_jsonapi).
* [Blueprinter](https://github.com/procore-oss/blueprinter) - Simple, Fast, and Declarative Serialization Library for Ruby.
* [rabl](https://github.com/nesquena/rabl) - General ruby templating with json, bson, xml, plist and msgpack support.
* [Roar](https://github.com/trailblazer/roar) - Parse and render REST API documents using representers.

## HTTP Clients
* [rest-client](https://github.com/rest-client/rest-client) - Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.
* [Httparty](https://github.com/jnunemaker/httparty) - Makes http fun again! Ain't no party like a httparty, because a httparty don't stop.
* [Faraday](https://github.com/lostisland/faraday) - Simple, but flexible HTTP client library, with support for multiple backends.

## Documentation
* [Grape Swagger](https://github.com/ruby-grape/grape-swagger) - Autogenerate documentation on Grape API.
* [Grape Swagger UI](https://github.com/swagger-api/swagger-ui) - Display documentation that is generated using Grape Swagger.
* [apiary](https://apiary.io/) - Work together to quickly design, prototype, document and test APIs.
* [apiblueprint](https://apiblueprint.org) - API Documentation with powerful tooling.

## Admin Panel
* [ActiveAdmin](http://activeadmin.info) - ActiveAdmin is an administration framework for Ruby on Rails applications.
* [RailsAdmin](https://github.com/sferik/rails_admin) - RailsAdmin is a Rails engine that provides an easy-to-use interface for managing your data.
* [administrate](https://github.com/thoughtbot/administrate) - A Rails engine that helps you put together a super-flexible admin dashboard.
* [Trestle](https://github.com/TrestleAdmin/trestle) - A modern, responsive admin framework for Ruby on Rails.

## File uploaders
* [Carrierwave](https://github.com/carrierwaveuploader/carrierwave) - Provides a simple and extremely flexible way to upload files from Ruby applications
* [Shrine](https://github.com/shrinerb/shrine) - Shrine is a toolkit for handling file attachments in Ruby applications

## Logging
* [grape_logging](https://github.com/aserafin/grape_logging) - Request logging for Grape.
* [Lograge](https://github.com/roidrage/lograge) - An attempt to tame Rails' default policy to log everything.

## Coding Style
* [RuboCop](https://github.com/bbatsov/rubocop) - Rubocop is a Ruby static code analyzer. Out of the box it will enforce many of the guidelines outlined in the community [Ruby Style Guide](https://github.com/bbatsov/ruby-style-guide).
* [Rails Best Practice](https://github.com/railsbp/rails_best_practices) - Rails best practice is a code metric tool to check the quality of rails codes.
* [Metric Fu]( https://github.com/metricfu/metric_fu) - A fist full of code metrics.
* [Pronto](https://github.com/mmozuras/pronto) - Quick automated code review of your changes.

## Testing
* [rspec-rails](https://github.com/rspec/rspec-rails) - Rspec-rails is a testing framework for Rails 5+.
* [factory_bot](https://github.com/thoughtbot/factory_bot) - A library for setting up Ruby objects as test data.
* [Faker](https://github.com/faker-ruby/faker) - A library for generating fake data such as names, addresses, and phone numbers.
* [Webmock](https://github.com/bblimke/webmock) - Library for stubbing and setting expectations on HTTP requests in Ruby.

## Contribute

Contributions welcome! Read the [contribution guidelines](CONTRIBUTING.md) first.