The APIs evolve with change in business requirement, stabilization of the issues identified in earlier releases and feature enrichments. The consumers who are already consuming APIs should not get impacted with immediate change in APIs release, hence they are released with incremental versions. Separate API version provides changed API business logic, input arguments or output response. When callers want to upgrade to a newer version, they should be able to do this using an easy approach by providing specific version of API as HTTP Header parameter.

Example
The following HTTP Get requests vehicle details for API version 1.0.0.
Method : GET
URL : /device/data/vehicles/{id} HTTP/1.1
Host : api.oncommandconnection.com
Authorization: Bearer eyJ0eXFkLTRmZ...
version: 1.0.0

The Get APIs return the list of entities and with API filteration criteria requester can limit the output records in the response. However post application of filters also it could return huge number of records. In case of API dealing with high volume data like telemetry/ timeseries data could return even millions or billions of records e.g. Telemetry Device Data API. APIs without any pagination may lead to extraneous network traffic, slowness in API response and performance hit to the resources serving the data for concurrent requesters accessing APIs. Hence it is important to provide the data in limited record chunks using pagination to API requester. The APIs available in API management will provide the forward only pagination and it provides requestContinuationToken in the meta section of the API response. The same requestContinuationToken need to be passed in the next subsequent request to fetch the next set of records.

Example
Sample Error Model
Sample Response Model