mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-04-06 00:32:12 +02:00
116 lines
6.7 KiB
Plaintext
116 lines
6.7 KiB
Plaintext
<main class="py-16">
|
|
<article class="prose ">
|
|
<h1>Pagination</h1>
|
|
<p class="lead">In this guide, we will look at how to work with paginated responses when querying the OneUptime
|
|
API. By default, all responses limit results to ten. </p>
|
|
<p>When an API response returns a list of objects, no matter the amount, pagination is supported. In paginated
|
|
responses, objects are nested in a <code class="inline-code">data</code> attribute. The API response also has
|
|
<code class="inline-code">count</code> attribute that indicates total count in the list with that query. You
|
|
can use the <code class="inline-code">limit</code> and <code class="inline-code">skip</code> query parameters
|
|
to query pages.</p>
|
|
<h2 id="example-using-cursors" class="scroll-mt-24">
|
|
Pagination Example
|
|
</h2>
|
|
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:max-w-none xl:grid-cols-2">
|
|
<div class="[&>:first-child]:mt-0 [&>:last-child]:mb-0">
|
|
<p>In this example, we request the list fo monitors. As a result, we get a list of three monitors and can
|
|
tell by the <code class="inline-code">count</code> attribute that we have reached the end of the
|
|
result set</p>
|
|
<h2 id="example-using-cursors" class="scroll-mt-24">
|
|
Query Parameters
|
|
</h2>
|
|
<div class="my-6">
|
|
<ul role="list"
|
|
class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 ">
|
|
<li class="m-0 px-0 py-4 first:pt-0 last:pb-0">
|
|
<dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2">
|
|
<dt class="sr-only">Name</dt>
|
|
<dd><code class="inline-code">limit</code></dd>
|
|
<dt class="sr-only">Type</dt>
|
|
<dd class="font-mono text-xs text-zinc-400 ">Number</dd>
|
|
<dt class="sr-only">Description</dt>
|
|
<dd class="w-full flex-none [&>:first-child]:mt-0 [&>:last-child]:mb-0">
|
|
<p>Number of items you need to fetch. More items will lead to slower responses. Max limit is
|
|
100.</p>
|
|
</dd>
|
|
</dl>
|
|
</li>
|
|
<li class="m-0 px-0 py-4 first:pt-0 last:pb-0">
|
|
<dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2">
|
|
<dt class="sr-only">Name</dt>
|
|
<dd><code class="inline-code">skip</code></dd>
|
|
<dt class="sr-only">Type</dt>
|
|
<dd class="font-mono text-xs text-zinc-400 ">Number</dd>
|
|
<dt class="sr-only">Description</dt>
|
|
<dd class="w-full flex-none [&>:first-child]:mt-0 [&>:last-child]:mb-0">
|
|
<p>Number of items to skip. This can be useful when you are paginating items.</p>
|
|
</dd>
|
|
</dl>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<h2 id="example-using-cursors" class="scroll-mt-24">
|
|
Response Body
|
|
</h2>
|
|
<div class="my-6">
|
|
<ul role="list"
|
|
class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 ">
|
|
<li class="m-0 px-0 py-4 first:pt-0 last:pb-0">
|
|
<dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2">
|
|
<dt class="sr-only">Name</dt>
|
|
<dd><code class="inline-code">data</code></dd>
|
|
<dt class="sr-only">Type</dt>
|
|
<dd class="font-mono text-xs text-zinc-400 ">JSON Array</dd>
|
|
<dt class="sr-only">Description</dt>
|
|
<dd class="w-full flex-none [&>:first-child]:mt-0 [&>:last-child]:mb-0">
|
|
<p>List of items fetched.</p>
|
|
</dd>
|
|
</dl>
|
|
</li>
|
|
<li class="m-0 px-0 py-4 first:pt-0 last:pb-0">
|
|
<dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2">
|
|
<dt class="sr-only">Name</dt>
|
|
<dd><code class="inline-code">count</code></dd>
|
|
<dt class="sr-only">Type</dt>
|
|
<dd class="font-mono text-xs text-zinc-400 ">Number</dd>
|
|
<dt class="sr-only">Description</dt>
|
|
<dd class="w-full flex-none [&>:first-child]:mt-0 [&>:last-child]:mb-0">
|
|
<p>Total number of items in the database</p>
|
|
</dd>
|
|
</dl>
|
|
</li>
|
|
<li class="m-0 px-0 py-4 first:pt-0 last:pb-0">
|
|
<dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2">
|
|
<dt class="sr-only">Name</dt>
|
|
<dd><code class="inline-code">limit</code></dd>
|
|
<dt class="sr-only">Type</dt>
|
|
<dd class="font-mono text-xs text-zinc-400 ">Number</dd>
|
|
<dt class="sr-only">Description</dt>
|
|
<dd class="w-full flex-none [&>:first-child]:mt-0 [&>:last-child]:mb-0">
|
|
<p>Number of items you need to fetch. More items will lead to slower responses. Max limit is
|
|
100.</p>
|
|
</dd>
|
|
</dl>
|
|
</li>
|
|
<li class="m-0 px-0 py-4 first:pt-0 last:pb-0">
|
|
<dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2">
|
|
<dt class="sr-only">Name</dt>
|
|
<dd><code class="inline-code">skip</code></dd>
|
|
<dt class="sr-only">Type</dt>
|
|
<dd class="font-mono text-xs text-zinc-400 ">Number</dd>
|
|
<dt class="sr-only">Description</dt>
|
|
<dd class="w-full flex-none [&>:first-child]:mt-0 [&>:last-child]:mb-0">
|
|
<p>Number of items to skip. This can be useful when you are paginating items.</p>
|
|
</dd>
|
|
</dl>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="[&>:first-child]:mt-0 [&>:last-child]:mb-0">
|
|
<%- include('../partials/code', {title: "Example Pagination Request", requestUrl: "/api/monitors/get-list?skip=0&limit=3", requestType: "GET", code: pageData.requestCode }) -%>
|
|
<%- include('../partials/code', {title: "Example Pagination Response" , requestUrl: "", requestType: "", code: pageData.responseCode }) -%>
|
|
</div>
|
|
</div>
|
|
</article>
|
|
</main> |