Aracılığıyla paylaş


SAYFA boyutunu REST içinde ile $first sınırlama

Sayfa boyutunu sınırlamak, büyük veri kümelerini sorgularken istemcilerin veya sunucuların aşırı olmasını önler. REST'de, Veri API'si oluşturucusu (DAB), tek bir yanıtta kaç kaydın $first döndürülür denetlemek için parametresini kullanır. DAB, imleç tabanlı sayfalandırmayı dahili olarak uygular, ancak $first devamlılık gerekmediğinde bile kullanılabilir.

Uyarı

$first döndürülen satır sayısını sınırlar, ancak devamlılığı kendisi işlemez. Birden çok sayfa için kullanın $after.

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

Genel Bakış

Konsept Description
Varsayılan sayfa boyutu runtime.pagination.default-page-size (varsayılan değer 100'dır)
En büyük sayfa boyutu runtime.pagination.max-page-size (varsayılan değer: 100000)
İstemci geçersiz kılma $first
Maksimum istekte bulunma $first=-1 yapılandırılan en büyük sayfa boyutunu iste

Atlanırsa $first , varsayılan sayfa boyutu otomatik olarak uygulanır.

Kullanım düzeni

GET /api/{entity}?$first=N

Example

Sonuçları beş kitapla sınırlayın.

GET /api/books?$first=5

Kavramsal SQL

SELECT TOP (5)
  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" },
    { "id": 4, "title": "I, Robot" },
    { "id": 5, "title": "The Martian" }
  ]
}

Doğrulama kuralları

Veri Girişi Result
Atla Kullanır default-page-size
Pozitif tamsayı ≤ maksimum Kabul edildi
-1 Genişletilmiş: max-page-size
0 400 (geçersiz)
< -1 400
> max-page-size 400

Örnek hata iletisi

Invalid number of items requested, first argument must be either -1 or a positive number within the max page size limit of 100000. Actual value: 0

Ö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.