Sonuçları REST olarak sıralama ($orderby)

Sıralama, döndürülen kayıtların sırasını tanımlar ve kararlı sayfalandırmayı sağlar. REST'de, Veri API oluşturucusu (DAB), veya $afteruygulamadan $first önce sonuçları sıralamak için sorgu parametresini kullanır$orderby. atlarsanız $orderby, DAB varsayılan olarak birincil anahtara göre (artan) sıralamayı kullanır.

Uyarı

Bileşik birincil anahtarlar için VERITABANı sütun dizisine göre DAB siparişleri.

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

Genel Bakış

Konsept Description
Sorgu parametresi $orderby
Yön belirteçleri asc, desc
Varsayılan sipariş Birincil anahtar artan
Çok alanlı sipariş Virgülle ayrılmış alan listesi
Kravat kesme Kalan birincil anahtar alanları otomatik olarak eklenir

Kullanım düzeni

GET /api/{entity}?$orderby=FieldA [asc|desc], FieldB desc

Example

Kitapları yıla göre azalan düzende sıralayın, sonra da başlık artan.

GET /api/books?$orderby=year desc, title asc&$first=5

Kavramsal SQL

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

Örnek yanıt

{
  "value": [
    { "id": 7, "title": "Dune Messiah", "year": 1969 },
    { "id": 6, "title": "Dune", "year": 1965 },
    { "id": 3, "title": "Foundation", "year": 1951 },
    { "id": 1, "title": "I, Robot", "year": 1950 },
    { "id": 8, "title": "The Martian Chronicles", "year": 1950 }
  ]
}

Kurallar

Rule Ayrıntı
Sınırlayıcı Virgül + isteğe bağlı boşluk
Yön anahtar sözcükleri asc (varsayılan), desc
Büyük/küçük harf duyarlılığı Alan adları büyük/küçük harfe duyarlıdır
Bilinmeyen alan Döndürür 400 Invalid orderby column requested
Desteklenmeyen söz dizimi Döndürür 400 OrderBy property is not supported.

Örnek hatalar

Geçersiz alan adı:

400 Invalid orderby column requested: publishedYear

Desteklenmeyen belirteç:

400 OrderBy property is not supported.

ile etkileşim

içinde $selectbulunmayan bir alana göre sıraladığınızda DAB, sıralama veya imleç oluşturma için bunu dahili olarak getirir, ancak son yükten atlar.

İlgili yapılandırma

{
  "entities": {
    "Book": {
      "source": {
        "object": "dbo.books",
        "type": "table"
      },
      "mappings": {
        "sku_title": "title"
      }
    }
  }
}

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