add pagination to API
This commit is contained in:
parent
6817a6a295
commit
76e4d94d43
6 changed files with 16 additions and 5 deletions
|
@ -23,6 +23,13 @@ GET http://example.com/api/v2/projects?private_token=QVy1PB7sTxfy4pqfZM1U
|
||||||
|
|
||||||
The API uses JSON to serialize data. You don't need to specify `.json` at the end of API URL.
|
The API uses JSON to serialize data. You don't need to specify `.json` at the end of API URL.
|
||||||
|
|
||||||
|
#### Pagination
|
||||||
|
|
||||||
|
When listing resources you can pass the following parameters:
|
||||||
|
|
||||||
|
+ `page` (default: `1`) - page number
|
||||||
|
+ `per_page` (default: `20`, max: `100`) - how many items to list per page
|
||||||
|
|
||||||
## Contents
|
## Contents
|
||||||
|
|
||||||
+ [Users](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/users.md)
|
+ [Users](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/users.md)
|
||||||
|
|
|
@ -14,6 +14,10 @@ module Gitlab
|
||||||
@project
|
@project
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def paginate(object)
|
||||||
|
object.page(params[:page]).per(params[:per_page].to_i)
|
||||||
|
end
|
||||||
|
|
||||||
def authenticate!
|
def authenticate!
|
||||||
error!({'message' => '401 Unauthorized'}, 401) unless current_user
|
error!({'message' => '401 Unauthorized'}, 401) unless current_user
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,7 +9,7 @@ module Gitlab
|
||||||
# Example Request:
|
# Example Request:
|
||||||
# GET /issues
|
# GET /issues
|
||||||
get do
|
get do
|
||||||
present current_user.issues, with: Entities::Issue
|
present paginate(current_user.issues), with: Entities::Issue
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ module Gitlab
|
||||||
# Example Request:
|
# Example Request:
|
||||||
# GET /projects/:id/issues
|
# GET /projects/:id/issues
|
||||||
get ":id/issues" do
|
get ":id/issues" do
|
||||||
present user_project.issues, with: Entities::Issue
|
present paginate(user_project.issues), with: Entities::Issue
|
||||||
end
|
end
|
||||||
|
|
||||||
# Get a single project issue
|
# Get a single project issue
|
||||||
|
|
|
@ -11,7 +11,7 @@ module Gitlab
|
||||||
# Example Request:
|
# Example Request:
|
||||||
# GET /projects/:id/milestones
|
# GET /projects/:id/milestones
|
||||||
get ":id/milestones" do
|
get ":id/milestones" do
|
||||||
present user_project.milestones, with: Entities::Milestone
|
present paginate(user_project.milestones), with: Entities::Milestone
|
||||||
end
|
end
|
||||||
|
|
||||||
# Get a single project milestone
|
# Get a single project milestone
|
||||||
|
|
|
@ -9,7 +9,7 @@ module Gitlab
|
||||||
# Example Request:
|
# Example Request:
|
||||||
# GET /projects
|
# GET /projects
|
||||||
get do
|
get do
|
||||||
@projects = current_user.projects
|
@projects = paginate current_user.projects
|
||||||
present @projects, with: Entities::Project
|
present @projects, with: Entities::Project
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ module Gitlab
|
||||||
# Example Request:
|
# Example Request:
|
||||||
# GET /users
|
# GET /users
|
||||||
get do
|
get do
|
||||||
@users = User.all
|
@users = paginate User
|
||||||
present @users, with: Entities::User
|
present @users, with: Entities::User
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue