Aracılığıyla paylaş


REST'te ile $after sayfalandırma

Sayfalandırma, büyük veri kümelerini daha küçük, yönetilebilir sayfalara daraltıyor. REST'de Veri API'si oluşturucusu (DAB), anahtar kümesi sayfalandırması için sorgu parametresini kullanarak $after sıralı sonuçlar arasında kararlı ve verimli bir geçiş sağlar. Her belirteç, önceki sayfadan son kaydın konumunu işaretler ve sonraki isteğin bu noktadan devam etmesi için izin verir. Uzaklık sayfalandırmadan farklı olarak, anahtar kümesi sayfalandırması istekler arasında veri değiştiğinde eksik veya yinelenen satırları önler.

Bu belgenin GraphQL sürümüne gidin.

Hızlı bakış

Konsept Description
$after Önceki istekten döndürülen opak devamlılık belirteci
$first Sayfa başına getirilecek en fazla kayıt sayısı
nextLink Sonraki sayfanın URL'si şunları içerir: $after

Temel sayfalandırma

Bu örnekte ilk üç kitabı alıyoruz.

HTTP isteği

GET /api/books?$first=3

Kavramsal SQL

SELECT TOP (3)
  id,
  sku_title AS title
FROM dbo.books
ORDER BY id ASC;

Örnek yanıt

{
  "value": [
    { "id": 1, "title": "Dune" },
    { "id": 2, "title": "Foundation" },
    { "id": 3, "title": "Hyperion" }
  ],
  "nextLink": "/api/books?$first=3&$after=eyJpZCI6M30="
}

Uyarı

Yapılandırmada göreli nextLink bir yol varsanext-link-relative=true; değilse, mutlak bir URL'dir.

Ile devam etme $after

parametresi sonraki $after sayfa için devamlılık belirtecini belirtir. değeri, önceki sayfanın son kaydını temsil eden base64 kodlu bir dizedir.

Uyarı

$after son sayfanın nerede sona erdiğini tanımlayan opak bir belirteç taşır. Belirteçleri sabit olarak kabul edin ve hiçbir zaman bunları oluşturmayı veya değiştirmeyi denemeyin.

Bu örnekte, son sayfanın belirtecinin ardından sonraki üç kitabı alıyoruz.

HTTP isteği

GET /api/books?$first=3&$after=eyJpZCI6M30=

Kavramsal SQL

SELECT TOP (3)
  id,
  sku_title AS title
FROM dbo.books
WHERE id > 3
ORDER BY id ASC;

Örnek yanıt

{
  "value": [
    { "id": 4, "title": "I, Robot" },
    { "id": 5, "title": "The Left Hand of Darkness" },
    { "id": 6, "title": "The Martian" }
  ],
  "nextLink": "/api/books?$first=3&$after=eyJpZCI6Nn0="
}

Veri sonu

Olmadığında nextLink , getirilecek başka kayıt yoktur. Son sayfa yanıtı yalnızca içermeyen nextLinkbir value dizi içerir.

Örnek yanıt

{
  "value": [
    { "id": 7, "title": "Rendezvous with Rama" },
    { "id": 8, "title": "The Dispossessed" }
  ]
}

Uyarı

Herhangi bir şema veya sıralama değişikliği, daha önce verilen belirteçleri geçersiz kılır. İstemciler sayfalandırmayı ilk sayfadan yeniden başlatmalıdır.

Örnek yapılandırma

{
  "runtime": {
    "pagination": {
      "default-page-size": 100,
      "max-page-size": 100000
    }
  },
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.books"
      },
      "mappings": {
        "sku_title": "title",
        "sku_price": "price"
      },
      "relationships": {
        "book_category": {
          "cardinality": "one",
          "target.entity": "Category",
          "source.fields": [ "category_id" ],
          "target.fields": [ "id" ]
        }
      }
    },
    "Category": {
      "source": {
        "type": "table",
        "object": "dbo.categories"
      },
      "relationships": {
        "category_books": {
          "cardinality": "many",
          "target.entity": "Book",
          "source.fields": [ "id" ],
          "target.fields": [ "category_id" ]
        }
      }
    }
  }
}

Ayrıca bakınız

Konsept REST GraphQL Amaç
Projection $select items Döndürülecek alanları seçme
Filtering $filter filtre Satırları koşula göre kısıtlama
Sıralama $orderby orderBy Sıralama düzenini tanımlama
Sayfa Boyutu $first first Sayfa başına öğe sayısını sınırlama
Devam $after sonra İmleç kullanarak son sayfadan devam et

Uyarı

REST anahtar sözcükleri, OData kurallarını izleyerek ile $başlar.