1

Does Restful API define proper ways to give Sort Order Direction, (Ascending or Descending) for API user parameters ?

I am letting a user input a request string, that only allows two options for API to work "Ascending" or "Descending" . Is there a more formal way of doing this per standards?

Request:

{
  "sortField": "PaymentDate",
  "sortOrder": "Descending"
}

Specifying sort order in a JSON API

1 Answer 1

3

The JSON:API specification specifies that sorting order is ascending by default. Client could switch the sorting order by prefixing the sort field with a minus (-).

The sort order for each sort field MUST be ascending unless it is prefixed with a minus (U+002D HYPHEN-MINUS, “-“), in which case it MUST be descending.

https://jsonapi.org/format/1.1/#fetching-sorting

Your example given does not look as if your API implements the JSON:API specification. Even though this question is tagged with [json-api]. If you API does not implement the JSON:API specification, you are free to design the API for controlling sorting order as you like.

The API specification of the OpenStack project could give an inspiration. It also uses a comma-separated list of sorting fields: ?sort=key1,key2,key3. A client may specify the sorting direction by appending either asc or desc to the sorting field using colon (:) as a separator: ?sort=key1:asc,key2:desc,key3:asc. If sorting direction is not specified, then the server can chose sorting direction.

Sorting is determined through the use of the ‘sort’ query string parameter. The value of this parameter is a comma-separated list of sort keys. Sort directions can optionally be appended to each sort key, separated by the ‘:’ character.

The supported sort directions are either ‘asc’ for ascending or ‘desc’ for descending.

The caller may (but is not required to) specify a sort direction for each key. If a sort direction is not specified for a key, then a default is set by the server.

https://specs.openstack.org/openstack/api-wg/guidelines/pagination_filter_sort.html#sorting

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.