Hi Devs,

After having some discussions and experiments, we thought not to have the
first and last links in the response, because when the offset is not a
multiple of the page size, it is hard to build the link of the first page.

At the same time, we decided to have a configuration option for maximum
page size. The default value for this configuration which will be shipped
with the product will be 100.

On Wed, Oct 9, 2019 at 2:12 PM Maduranga Siriwardena <madura...@wso2.com>
wrote:

> Hi devs,
>
> We have come across the below format for requests and responses for
> resource listing in Identity Server REST APIs.
>
> The below parameters will be used in the resource listing requests.
>
>    - limit - Items requested for the page. If the parameter is omitted we
>    will be using 30 as the default value and max limit allowed would be 100 if
>    there is no limitation in the backend implementation. In that case, the
>    maximum value will be advertised in the API definition.
>    - offset - 0 based index to get the results starting from element
>    number offset + 1.
>    - sortOrder - Whether to sort the results in ascending or descending
>    order. Supported values are ASC and DESC. If the backend API does not
>    support either of these values, we might be returning an error.
>    - sortBy - Attribute to use for sorting.
>    - attributes - Attributes to be included in the responses.
>
> If limit/offset values are invalid we will be using default values.
>
> The below parameters will be used in the responses.
>
>    - totalResults - Number of results that match the listing operation.
>    - startIndex - Index of the first element of the page, which will be
>    equal to offset + 1.
>    - count - Number of elements in the page.
>    - links - Links that can be used to navigate between pages. The links
>    section will contain the below format.
>
> "links": [
>
>     {
>
>         "href": "resource?offset=50&limit=10",
>
>         "rel": "next",
>
>     },  {
>
>         "href": "resource?offset=30&limit=10",
>
>         "rel": "previous",
>
>     },  {
>
>         "href": "resource?offset=0&limit=10",
>
>         "rel": "first",
>
>     },  {
>
>         "href": "resource?offset=100&limit=10",
>
>         "rel": "last",
>
>     }
>
> ]
>
>
> Links will be included with the below rules.
>
>    - If this is the first page, it will have “next” and “last” links only.
>    - If this is the last page, it will have “previous” and “first” links
>    only.
>    - If the existing backend does not support to get the required links
>    (and it's hard to implement it), we might skip adding (some of) these 
> links.
>
> Please let us know your thoughts regarding this approach.
>
> Regards,
> --
> *Maduranga Siriwardena* | Associated Technical Lead | WSO2 Inc.
> (m) +94718990591 | madura...@wso2.com
>
> <http://wso2.com/signature>
>


-- 
*Maduranga Siriwardena* | Associated Technical Lead | WSO2 Inc.
(m) +94718990591 | madura...@wso2.com

<http://wso2.com/signature>
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to