taskana/rest/taskana-rest-spring/src/test/resources/asciidoc/rest-api.adoc

996 lines
27 KiB
Plaintext

= Taskana RESTful API Documentation
taskana.pro;
:doctype: book
:icons: font
:source-highlighter: highlightjs
:toc: left
:toclevels: 4
:sectlinks:
= Overview
[big]#*This Documentation is still under development and probably incomplete and/or flawed in certain areas.*#
== HTTP verbs
The Taskana RESTful API tries to adhere as closely as possible to standard HTTP and REST conventions in its
use of HTTP verbs.
|===
| Verb | Usage
| `GET`
| Used to retrieve a resource
| `POST`
| Used to create a new resource
| `PUT`
| Used to update a resource
| `DELTE`
| Used to delete a existing resource
|===
== HTTP status codes
The Taskana RESTful API tries to adhere as closely as possible to standard HTTP and REST conventions in its
use of HTTP status codes.
|===
| Status code | Usage
| `200 OK`
| The request completed successfully.
| `201 Created`
| The request completed successfully und create the new resource.
| `202 Accepted`
| The request could not be processed immediatly but will be carried out later.
| `204 No Content`
| The request completed successfully and there is no content to send in the response payload.
| `400 Bad Request`
| The request was not performed because of a client error like a invalid parameter.
| `401 Unauthorized`
| The request has not been applied because it lacks valid authentication credentials for the target resource.
| `403 FORBIDDEN`
| The current user <user> has no read permission for <Resource Type> <Resource>.
| `404 Not Found`
| The requested resource did not exist.
| `405 Method not allowed`
| The method used in this request is can not be used on this resource.
| `406` Not acceptable
| Wrong content-type in request header.
| `409 Conflict`
| The resource could not be updatet or created because of a conflict with an existing one.
| `415 Unsupported Media Type`
| The content of the request can't be understood due to being in an unsupported media-type.
| `423 Locked`
| The resource is currently locked and cannot be modified.
|===
== Common Fields
Taskana uses Spring HATEOAS to achive the best possible REST-conformity. +
In HATEOAS every response contains a map named *_links* in which the links for navigation are included. +
If a resource has embedded resources these are found in a map named *_embedded*.
=== Response Fields common to all Resources
Every Resource contains at least the link to itself.
include::{snippets}/CommonFields/response-fields.adoc[]
=== Response Fields common to all Summary Resources
Summary Resources contain embedded resources and can be requested in a <<paged-request, paged format>>.
include::{snippets}/CommonSummaryResourceFields/response-fields.adoc[]
== Tasks-Resource
=== Get a list of all tasks
A `GET` request is used to retrieve a task summary.
==== Example Request
include::{snippets}/GetAllTasksDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetAllTasksDocTest/http-response.adoc[]
==== Response Structure
include::{snippets}/GetAllTasksDocTest/response-fields.adoc[]
=== Filter and sort options
The list generated in the response can be filtered using following parameters in the uri: +
name | priority | state | classification.key | workbasket-id | {workbasket-key , domain} | +
owner | por.company | por.system | por.instance | por.type | por.value +
planned | planned-from | planned-until | due | due-from | due-until | +
external-id | wildcard-search-value | wildcard-search-fields
When filtering a wildcard search you must provide both paremters +
(wildcard-search-value and wildcard-search-fields). Valid wildcard-search-fields are: +
-name +
-description +
-custom_1 to custom_16 +
These fields are case insensitive! +
If it is sufficient to filter the list with a single time interval, use the parameters +
planned-from/due-from and planned-until/due-until. +
Leave one of them out of the request, if you want to have an open interval. +
If it is required to filter the list with multiple planned or due time intervals, the parameters +
planned / due can be used as follows instead: +
- provide a string with an even number of instants separated by a ",". Time intervals will be +
determined in pairs of those instants. +
- in case of a required open interval, just give one of the arguments of the pair an empty string +
like this: +
planned = {Instant1},{Instant2},,{Instant3} this will create two intervals, one between Instant1 +
and Instant2 as well as an open interval between the beginning of time and Instant3 +
Note that it is prohibited to use the planned / due parameter in combination with the +
planned-from/due-from and/or planned-until/due-until parameters +
It can also be sorted by using this set of parameters: +
sortBy = { classification.key | por.type | por.value | state | name| due | planned | priority } | order={ desc | asc }
=== Get a single task
A `GET` request is used to retrieve a task.
==== Example Request
include::{snippets}/GetSpecificTaskDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetSpecificTaskDocTest/http-response.adoc[]
[[task]]
==== Response Structure
include::{snippets}/GetSpecificTaskDocTest/response-fields.adoc[]
=== Update a task
A `PUT` request is used to update a task.
==== Example Request
include::{snippets}/UpdateTaskDocTest/http-request.adoc[]
==== Request Structure
include::{snippets}/UpdateTaskDocTest/request-fields.adoc[]
==== Example Response
include::{snippets}/UpdateTaskDocTest/http-response.adoc[]
==== Response Structure
include::{snippets}/UpdateTaskDocTest/response-fields.adoc[]
=== Claim a task
A `POST` request is used to claim a task
==== Example Request
Note the empty request-body in the example.
include::{snippets}/ClaimTaskDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/ClaimTaskDocTest/http-response.adoc[]
==== Response Structure
The response-body is essentially the same as for getting a single task. +
Therefore for the response fields you can refer to the <<task, single task>>.
=== Cancel Claim a task
A `DELETE` request is used to cancel claim a task
==== Example Request
Note the empty request-body in the example.
include::{snippets}/CancelClaimTaskDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/CancelClaimTaskDocTest/http-response.adoc[]
==== Response Structure
The response-body is essentially the same as for getting a single task. +
Therefore for the response fields you can refer to the <<task, single task>>.
=== Select and Claim a task
A `POST` request is used to select and claim a task
==== Example Request
Note the empty request-body in the example.
include::{snippets}/SelectAndClaimTaskDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/SelectAndClaimTaskDocTest/http-response.adoc[]
==== Response Structure
The response-body is essentially the same as for getting a single task. +
Therefore for the response fields you can refer to the <<task, single task>>.
=== Complete a task
A `POST` request is used to complete a task
==== Example Request
Note the empty request-body in the example.
include::{snippets}/CompleteTaskDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/CompleteTaskDocTest/http-response.adoc[]
==== Response Structure
The response-body is essentially the same as for getting a single task. +
Therefore for the response fields you can refer to the <<task, single task>>.
=== Create a new task
A `POST` request is used to create a new task.
==== Example Request
This minimal example shows only the required fields to create a new task. The <<create-task-request-structure, request structure>> shows all possible fields for creating a task.
include::{snippets}/CreateTaskDocTest/http-request.adoc[]
[[create-task-request-structure, request structure]]
==== Request Structure
include::{snippets}/CreateTaskDocTest/request-fields.adoc[]
==== Example Response
include::{snippets}/CreateTaskDocTest/http-response.adoc[]
==== Response Structure
The response-body is essentially the same as for getting a single task. +
Therefore for the response fields you can refer to the <<task, single task>>.
=== Delete a task
A `DELETE` request is used to delete a task.
==== Example request
include::{snippets}/DeleteTaskDocTest/http-request.adoc[]
==== Example response
include::{snippets}/DeleteTaskDocTest/http-response.adoc[]
=== Delete multiple tasks
A `DELETE` request is used to delete multiple tasks.
==== Example request
include::{snippets}/DeleteTasksDocTest/http-request.adoc[]
==== Example response
include::{snippets}/DeleteTasksDocTest/http-response.adoc[]
=== Transfer a task to another workbasket
A `POST` request is used to transfer a task from one to another workbasket.
==== Example Request
include::{snippets}/TransferTaskDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/TransferTaskDocTest/http-response.adoc[]
==== Response Structure
The response-body is essentially the same as for getting a single task. +
Therefore for the response fields you can refer to the <<task, single task>>.
== TaskComment-Resource
=== Get a list of all task comments for a specific task
A `GET` request is used to retrieve the task comments.
==== Example Request
include::{snippets}/GetAllTaskCommentsForSpecificTaskDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetAllTaskCommentsForSpecificTaskDocTest/http-response.adoc[]
==== Response Structure
include::{snippets}/GetAllTaskCommentsForSpecificTaskDocTest/response-fields.adoc[]
=== Sort options
sort-by={ created | modified } | order={ desc | asc }
=== Get a specific task comment
A `GET` request is used to retrieve a task comment.
==== Example Request
include::{snippets}/GetSpecificTaskCommentDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetSpecificTaskCommentDocTest/http-response.adoc[]
==== Response Structure
include::{snippets}/GetSpecificTaskCommentDocTest/response-fields.adoc[]
=== Update a task comment
A `PUT` request is used to update a task comment.
==== Example Request
include::{snippets}/UpdateTaskCommentDocTest/http-request.adoc[]
==== Request Structure
include::{snippets}/UpdateTaskCommentDocTest/request-fields.adoc[]
==== Example Response
include::{snippets}/UpdateTaskCommentDocTest/http-response.adoc[]
==== Response Structure
include::{snippets}/UpdateTaskCommentDocTest/response-fields.adoc[]
=== Create a new task comment
A `POST` request is used to create a new task comment.
==== Example Request
This minimal example shows only the required fields to create a new task comment. The <<create-task-comment-request-structure, request structure>> shows all possible fields for creating a task comment.
include::{snippets}/CreateTaskCommentDocTest/http-request.adoc[]
[[create-taskcomment--request-structure, request structure]]
==== Request Structure
include::{snippets}/CreateTaskCommentDocTest/request-fields.adoc[]
==== Example Response
include::{snippets}/CreateTaskCommentDocTest/http-response.adoc[]
==== Response Structure
The response-body is essentially the same as for getting a specific task comment. +
Therefore for the response fields you can refer to the <<task comment, specific task comment>>.
=== Delete a task comment
A `DELETE` request is used to delete a task comment.
==== Example request
include::{snippets}/DeleteTaskCommentDocTest/http-request.adoc[]
==== Example response
include::{snippets}/DeleteTaskCommentDocTest/http-response.adoc[]
== Classifications-Resource
This resource provides the entry point with classifications.
=== Get a list of all classifications
A `GET` request is used to retrieve a classification summary.
==== Example Request
include::{snippets}/GetAllClassificationsDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetAllClassificationsDocTest/http-response.adoc[]
==== Response Structure
include::{snippets}/GetAllClassificationsDocTest/response-fields.adoc[]
The response-body is essentially the same as for getting a single classification. +
Therefore for the response fields you can refer to the structure of the <<workbasket, single workbasket>>.
==== Example Request
=== Filter and sort options
The list generated in the response can be filtered using following parameters in the uri: +
name | name-like | key | category | domain | type | custom-{1...8}-like +
It can also be sorted by using this set of parameters: +
sortBy = {category | domain | key | name } | order={desc | asc }
=== Get a single classification
A `GET` request is used to retrieve a classification.
==== Example Request
include::{snippets}/GetSpecificClassificationDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetSpecificClassificationDocTest/http-response.adoc[]
[[classification]]
==== Response Structure
include::{snippets}/GetSpecificClassificationDocTest/response-fields.adoc[]
=== Update a Classification
A `PUT` request is used to update a classification.
==== Example Request
include::{snippets}/UpdateClassificationDocTest/http-request.adoc[]
==== Request Structure
The request-body is essentially the same as for getting a single classification. +
Therefore for the request fields you can refer to the structure of the <<classification, single classification>>.
==== Example Response
include::{snippets}/UpdateClassificationDocTest/http-response.adoc[]
==== Response Structure
The response-body is essentially the same as for getting a single classification. +
Therefore for the response fields you can refer to the structure of the <<classification, single classification>>.
=== Create a new Classification
A `POST` request is used to create a new classification.
==== Example Request
This minimal example shows only the required fields to create a new classification. The <<create-classification-request-structure, request structure>> shows all possible fields for creating a classification.
include::{snippets}/CreateClassificationDocTest/http-request.adoc[]
[[create-classification-request-structure]]
==== Request Structure
include::{snippets}/CreateClassificationDocTest/request-fields.adoc[]
==== Example Response
include::{snippets}/CreateClassificationDocTest/http-response.adoc[]
==== Response Structure
The response-body is essentially the same as for getting a single classification. +
Therefore for the response fields you can refer to the structure of the <<classification, single classification>>.
=== Delete a classification
A `DELETE` request is used to delete a classification.
==== Example Request
include::{snippets}/DeleteClassificationDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/DeleteClassificationDocTest/http-response.adoc[]
== Classification-definition-Resource
[[classification-definitions]]
=== Get all classification definitions
A `GET` request is used to get all classification definitions.
==== Example Request
include::{snippets}/ExportClassificationDefinitionsDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/ExportClassificationDefinitionsDocTest/http-response.adoc[]
==== Response Structure
include::{snippets}/ExportClassificationDefinitionsDocTest/response-fields.adoc[]
=== Import new classification-definitions
A `POST` request is used to import new classification-definitions.
==== Example Request
This minimal example shows only the required fields to import a single new classification-definition. The <<classification, classification structure>> shows all possible fields for importing (and therefore creating) new classification-definitions.
include::{snippets}/ImportClassificationDefinitions/http-request.adoc[]
==== Example Response
include::{snippets}/ImportClassificationDefinitions/http-response.adoc[]
== Workbaskets-Resource
=== Get a list of all workbaskets
A `GET` request is used to retrieve a workbasket summary.
==== Example Request
include::{snippets}/GetAllWorkbasketsDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetAllWorkbasketsDocTest/http-response.adoc[]
==== Response Structure
include::{snippets}/GetAllWorkbasketsDocTest/response-fields.adoc[]
=== Filter and sort options
The list generated in the response can be filtered using following parameters in the uri: +
name | name-like | key | key-like | owner | owner-like | description-like | domain | +
type={GROUP | PERSONAL | TOPIC | CLEARANCE} | +
required-permission={READ|OPEN|APPEND|TRANSFER|DISTRIBUTE|CUSTOM_1...12} +
It can also be sorted by using this set of parameters: +
sortBy = {key | name | owner | type } | order={desc | asc }
=== Get a single workbasket
A `GET` request is used to retrieve a workbasket.
==== Example Request
include::{snippets}/GetSpecificWorkbasketDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetSpecificWorkbasketDocTest/http-response.adoc[]
[[workbasket]]
==== Response Structure
include::{snippets}/GetSpecificWorkbasketDocTest/response-fields.adoc[]
=== Update a workbasket
A `PUT` request is used to update a workbasket
==== Example Request
include::{snippets}/UpdateWorkbasketDocTest/http-request.adoc[]
==== Request Structure
The request-body is essentially the same as for getting a single workbasket. +
Therefore for the request fields you can refer to the structure of the <<workbasket, single workbasket>>.
==== Example Response
include::{snippets}/UpdateWorkbasketDocTest/http-response.adoc[]
==== Response Structure
The response-body is essentially the same as for getting a single workbasket. +
Therefore for the response fields you can refer to the structure of the <<workbasket, single workbasket>>.
=== Delete workbasket
A `DELETE` request to delete a workbasket.
Since workbaskets can contain completed and non-completed task, the request has different response codes: +
- *204 NO_CONTENT* - Workbasket has been deleted successfully
- *202 ACCEPTED* - Workbasket still contains completed tasks. It has been marked for deletion and will be deleted automatically as soon as all completed tasks are deleted.
- *423 LOCKED* - Worbasket contains non-completed tasks and cannot be deleted.
==== Example Request
include::{snippets}/DeleteWorkbasketDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/DeleteWorkbasketDocTest/http-response.adoc[]
=== Remove a workbasket as distribution-target
A `DELETE` request is used to remove a workbasket as a distribution-taregt.
==== Example Request
include::{snippets}/RemoveWorkbasketAsDistributionTargetDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/RemoveWorkbasketAsDistributionTargetDocTest/http-response.adoc[]
=== Get all Access-Items for a workbasket
A `GET` request is used to get a list of all accessitems of a workbasket.
==== Example Request
include::{snippets}/GetAllWorkbasketAccessItemsDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetAllWorkbasketAccessItemsDocTest/http-response.adoc[]
==== Response Structure
include::{snippets}/GetAllWorkbasketAccessItemsDocTest/response-fields.adoc[]
=== Get all distribution-targets for a workbasket
A `GET` request is used to get a list of the distribution-targets of a workbasket.
==== Example Request
include::{snippets}/GetAllWorkbasketDistributionTargets/http-request.adoc[]
==== Example Response
include::{snippets}/GetAllWorkbasketDistributionTargets/http-response.adoc[]
==== Response Structure
include::{snippets}/GetAllWorkbasketDistributionTargets/response-fields.adoc[]
=== Create a new Workbasket
A `POST` request is used to create a new workbasket.
==== Example Request
This minimal example shows only the required fields to create a new workbasket. The <<create-workbasket-request-structure, request structure>> shows all possible fields for creating a workbasket.
include::{snippets}/CreateWorkbasketDocTest/http-request.adoc[]
[[create-workbasket-request-structure]]
==== Request Structure
include::{snippets}/CreateWorkbasketDocTest/request-fields.adoc[]
==== Example Response
include::{snippets}/CreateWorkbasketDocTest/http-response.adoc[]
==== Response Structure
The response-body is essentially the same as for getting a single classification. +
Therefore for the response fields you can refer to the structure of the <<classification, single classification>>.
== Workbasket-definition-resource
=== Get all workbasket definitions
A `GET` request is used to get all workbasket definitions.
==== Example Request
include::{snippets}/ExportWorkbasketdefinitionsDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/ExportWorkbasketdefinitionsDocTest/http-response.adoc[]
[[workbasket-definitions]]
==== Response Structure
include::{snippets}/ExportWorkbasketdefinitionsDocTest/response-fields.adoc[]
=== Import new workbasket-definitions
A `POST` request is used to import new workbasket-definitions.
==== Example Request
This minimal example shows only the required fields to import a single new workbasket-definition. The <<workbasket, workbasket structure>> shows all possible fields for importing (and therefore creating) new workbasket-definitions.
include::{snippets}/ImportWorkbasketDefinitions/http-request.adoc[]
==== Response Structure
include::{snippets}/ImportWorkbasketDefinitions/http-response.adoc[]
== WorkbasketAccessItems-Resource
=== GET a list of all workbasketAccessItems
A `GET` return all workbasketAccessItems that correspond the given data.
==== Example Request
include::{snippets}/GetWorkbasketAccessItemsDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetWorkbasketAccessItemsDocTest/http-response.adoc[]
==== Response Structure
include::{snippets}/GetWorkbasketAccessItemsDocTest/response-fields.adoc[]
=== Filter and sort options
The list generated in the response can be filtered using following parameters in the uri: +
workbasket-key | workbasket-key-like | access-id | access-id-like +
name | name-like | key | key-like | owner | owner-like | description-like | domain | +
It can also be sorted by using this set of parameters: +
sortBy = { workbasket-key | access-id } | order={ desc | asc }
=== Delete a workbasketAccessItems
A `DELETE` request is used to delete a workbasketAccessItems.
==== Example request
include::{snippets}/RemoveWorkbasketAccessItemsDocTest/http-request.adoc[]
==== Example response
include::{snippets}/RemoveWorkbasketAccessItemsDocTest/http-response.adoc[]
== Monitor-Resource
=== Get a task status report
A `GET` request is used to get a task status report.
==== Example Request
include::{snippets}/GetTaskStatusReportDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetTaskStatusReportDocTest/http-response.adoc[]
==== Response Structure
include::{snippets}/GetTaskStatusReportDocTest/response-fields.adoc[]
=== Get a tasks workbasket report
A `GET` request is used to get the number of tasks sorted by state.
==== Example Request
include::{snippets}/GetTaskWorkbasketReportDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetTaskWorkbasketReportDocTest/http-response.adoc[]
==== Response Structure
Same as task status report
=== Get a tasks classification report
A `GET` request is used to get the number of tasks sorted by state.
==== Example Request
include::{snippets}/GetTaskClassificationReportDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetTaskClassificationReportDocTest/http-response.adoc[]
==== Response Structure
Same as task status report
=== Get a timestamp report
A `GET` request is used to get the number of tasks sorted by a task timestamp.
==== Example Request
include::{snippets}/GetTimestampReportDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetTimestampReportDocTest/http-response.adoc[]
==== Response Structure
Same as task status report
== Other Resources (using the TaskanaEngineController)
These resources are directly connected to the Taskana Engine endpoint.
=== Domains-Resource
This resource provides information which Domains exist in the system.
==== Example Request
include::{snippets}/GetAllDomainsDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetAllDomainsDocTest/http-response.adoc[]
==== Response Structure
include::{snippets}/GetAllDomainsDocTest/response-fields.adoc[]
=== Classification-Categories-Resource
This resource provides information which Classification Categories exist in the system.
==== Example Request
include::{snippets}/GetAllClassificationCategoriesDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetAllClassificationCategoriesDocTest/http-response.adoc[]
==== Response Structure
include::{snippets}/GetAllClassificationCategoriesDocTest/response-fields.adoc[]
=== Classification-Types-Resource
This resource provides information which Classification Types exist in the system.
==== Example Request
include::{snippets}/GetAllClassificationTypesDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetAllClassificationTypesDocTest/http-response.adoc[]
==== Response Structure
include::{snippets}/GetAllClassificationTypesDocTest/response-fields.adoc[]
=== Current-User-Info-Resource
This resource provides information about the current user.
include::{snippets}/GetCurrentUserInfoDocTest/http-request.adoc[]
==== Example Response
include::{snippets}/GetCurrentUserInfoDocTest/http-response.adoc[]
==== Response Structure
include::{snippets}/GetCurrentUserInfoDocTest/response-fields.adoc[]
=== History-Provider-Is-Enabled
This resource returns if history provider is enabled.
include::{snippets}/GetHistoryProviderIsEnabled/http-request.adoc[]
==== Example Response
include::{snippets}/GetHistoryProviderIsEnabled/http-response.adoc[]
==== Response Structure
Returns Boolean which indicates if History Provider is enabled or not.
[[resource-subsets]]
== Resource-Subsets
These subsets of the full resources are used in the Summary-Resources. +
Due to a bug with arrays in Spring-Restdocs the snippets used here are not actually generated using the Summary-Resource but by documenting the corresponding subset of an individual Classification Resource. +
Further information at <https://github.com/spring-projects/spring-restdocs/issues/473>
[[classification-subset]]
=== Classification-Subset
Subset of the <<classification, Classification Resource>>
include::{snippets}/ClassificationSubset/response-fields.adoc[]
[[workbasket-subset]]
=== Workbasket-Subset
Subset of the <<workbasket, Workbasket Resource>>
include::{snippets}/WorkbasketSubset/response-fields.adoc[]
[[task-subset]]
=== Task-Subset
Subset of the <<task, Task Resource>>
include::{snippets}/TaskSubset/response-fields.adoc[]
== Embedded Resources
Due to a workaround for the same bug as for the <<resource-subsets, Resource-Subsets>> all fields are prefixed with "_embedded.<resource-label>[].".
[[access-item]]
=== Access Items
The access items hold information about the permissions to the workbaskets.
include::{snippets}/AccessItemsDocTest/response-fields.adoc[]
[[paged-request]]
== Example for a paged request (using the AbstractPagingController)
Summary Resources can be requested in a paged format.
=== Example request
include::{snippets}/CommonSummaryResourceFields/http-request.adoc[]
=== Example response
include::{snippets}/CommonSummaryResourceFields/response-body.adoc[]