Skip to content

jsmestad/jsonapi-consumer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7d9721e · Jul 13, 2021
Apr 13, 2018
Jun 18, 2018
Apr 13, 2018
Nov 5, 2018
Jun 17, 2018
Mar 4, 2015
Apr 13, 2018
Oct 16, 2014
Apr 13, 2018
Apr 13, 2018
Jul 13, 2021

Repository files navigation

JSONAPI::Consumer

An ActiveModel-compliant consumer framework for communicating with JSONAPI-based APIs.

CircleCI

Installation

Add this line to your application's Gemfile:

gem 'jsonapi-consumer', '~> 1.0'

And then execute:

$ bundle

Usage

It's suggested to create a base resource for the whole API that you can re-use.

class Base < JSONAPI::Consumer::Resource
  # self.connection_options = {} # Faraday connection options
  # self.json_key_format = :dasherized_key # (default: underscored_key)
  # self.route_format = :dasherized_route # (default: underscored_route)
  self.site = 'http://localhost:3000/api/'
end

Then inherit from that Base class for each resource defined in your API.

module Blog
  class Author < Base
    has_many :posts, class_name: 'Blog::Post'
  end

  class Post < Base
    has_one :user, class_name: 'Blog::User'
    has_many :comments, class_name: 'Blog::Comment'
  end

  class User < Base

  end

  class Comment < Base

  end
end

Contributing

  1. Fork it ( https://github.com/jsmestad/jsonapi-consumer/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Copyright & License

JSONAPI::Consumer is distributed under the Apache 2.0 License. See LICENSE.txt file for more information.

Version v1 is a rewrite is based on the excellent work by json_api_client v1.5.3.