Skip to content
This repository has been archived by the owner on Aug 27, 2020. It is now read-only.

richardkall/api_pagination_headers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

api_pagination_headers Build Status Dependency Status

Adds pagination info to a Link response header.

This technique is considered to be a best practice for REST APIs and is currently used by GitHub. The gem also adds the total number of records into a Total-Count header.

Support for rails-api is built in.

Example

Link: <http://example.com/posts?page=2&per_page=10>; rel="next", <http://example.com/posts?page=2&per_page=10>; rel="last"
Total-Count: 11

Requirements

Install

Include in your Gemfile:

gem 'api_pagination_headers'

Usage

class PostsController < ApplicationController
  after_action only: [:index] { set_pagination_headers(:posts) }

  def index
    @posts = Post.all.paginate(per_page: params[:per_page], page: params[:page])
    respond_with @posts
  end
end

Config

ApiPaginationHeaders.configure do |config|
  # Change total count header title (default: 'Total-Count')
  config.total_count_header = 'X-Total-Count'
  
  # Force HTTPS (default: false)
  config.force_https = true
end

License

MIT © Richard Käll