


Pagination is based off of the Fluent 2 pagination system.
Add this to your Package.swift file
.package(url:"https://github.com/vapor-community/pagination.git", from:"1.0.0")
Conform your model toPaginatable
extensionMyModel:Paginatable{}
Once you have done that, it's as simple as returning your query in paginated format.
func test(_ req:Request)throws->Future<Paginated<MyModel>>{returntryMyModel.query(on: req).paginate(for: req)}
Even return items off of the query builder
func test(_ req:Request)throws->Future<Paginated<MyModel>>{returntryMyModel.query(on: req).filter(\MyModel.name=="Test").paginate(for: req)}
Making a request with the parameters is easy is appending?page=
and/or?per=
curl "http://localhost:8080/api/v1/models?page=1&per=10"
A response looks like this
{"data": [{"updatedAt":"2018-03-07T00:00:00Z","createdAt":"2018-03-07T00:00:00Z","name":"My Test Model" }],"page": {"position": {"current":1,"max":1 },"data": {"per":10,"total":2 } }}