Popularity
6.0
Declining
Activity
0.0
Stable
49
16
9

Monthly Downloads: 13,026
Programming language: Elixir
License: MIT License
Latest version: v3.1.0

scrivener_headers alternatives and similar packages

Based on the "Framework Components" category.
Alternatively, view scrivener_headers alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of scrivener_headers or a related project?

Add another 'Framework Components' Package

README

Scrivener.Headers

Build Status Hex Version Hex docs License

Helpers for paginating API responses with Scrivener and HTTP headers. Implements RFC-5988, the proposed standard for Web linking.

Setup

Add to mix.exs:

  defp deps do
    [
      # ...
      {:scrivener_headers, "~> 3.1"}
      # ...
    ]
  end

Usage

With paginate/2 we can easily set our pagination headers:

def index(conn, params) do
  page = MyApp.Person
         |> where([p], p.age > 30)
         |> order_by([p], desc: p.age)
         |> preload(:friends)
         |> MyApp.Repo.paginate(params)

  conn
  |> Scrivener.Headers.paginate(page)
  |> render("index.json", people: page.entries)
end

With curl --include we can see our new headers:

$ curl --include 'https://localhost:4000/people?page=5'
HTTP/1.1 200 OK
Link: <http://localhost:4000/people?page=1>; rel="first",
  <http://localhost:4000/people?page=30>; rel="last",
  <http://localhost:4000/people?page=6>; rel="next",
  <http://localhost:4000/people?page=4>; rel="prev"
Total: 300
Per-Page: 10

Contributing

Contributions of all types are welcomed and encouraged. Please make appropriate use of Issues and Pull Requests. All code should have test coverage.

License

MIT license. Please see LICENSE for details.


*Note that all licence references and agreements mentioned in the scrivener_headers README section above are relevant to that project's source code only.