Sorted
A 200 response with a paginated list of sorted items.
Parameter | Type | Description |
---|---|---|
status | integer | The HTTP status code |
message | string | The message to return |
items | Array | Items from the current page |
paginationInfo | PaginationInfo | Details about the pagination |
sortInfo | SortInfo | The sort order of the items |
Formats
Section titled “Formats”An example sorted response:
{ "status": 200, "message": "Success", "items": [ { "id": "123", "name": "Test 1" }, { "id": "124", "name": "Test 2" } ], "paginationInfo": { "page": 1, "pageSize": 10, "totalItems": 25, "totalPages": 3 }, "sortInfo": { "field": "name", "direction": "asc" }}
The JSON schema for this model is:
$schema: https://json-schema.org/draft/2020-12/schema$id: Sorted.yamltype: objectproperties: status: type: integer minimum: 200 default: 200 description: The HTTP status code message: type: string default: "Success" description: The message to return items: type: array description: Items from the current page paginationInfo: $ref: "#/components/schemas/CommonGrants.Pagination.PaginationInfo" sortInfo: $ref: "#/components/schemas/CommonGrants.Sorting.SortInfo"required: - status - message - items - paginationInfo - sortInfo
The TypeSpec code for this model is:
/** A paginated list of items with a sort order * * @template T The schema for the value of the `"items"` property in this response */model Sorted<T> { // Inherit the properties of the Paginated response ...Paginated<T>;
/** The sort order of the items */ sortInfo: Sorting.SortInfo;}
The OpenAPI specification for this model is:
components: schemas: CommonGrants.Responses.Sorted: type: object properties: status: type: integer minimum: 200 default: 200 description: The HTTP status code message: type: string default: "Success" description: The message to return items: type: array description: Items from the current page paginationInfo: $ref: "#/components/schemas/CommonGrants.Pagination.PaginationInfo" sortInfo: $ref: "#/components/schemas/CommonGrants.Sorting.SortInfo" required: - status - message - items - paginationInfo - sortInfo
Here’s an example of how to use the Sorted
response within a an API operation:
import "@common-grants/core";import "@typespec/http";
using TypeSpec.Http;using CommonGrants.Pagination;using CommonGrants.Responses;
model TestModel { id: string; name: string;}
@summary("List test models")@doc("Get a paginated list of test models")@getop listTest(...PaginatedQueryParams): Sorted<TestModel>;