Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Projeksiyon, yalnızca istemcinizin gerçekten ihtiyaç duyduğu şeyleri geri döndürmenize yardımcı olur. Daha küçük yükler performansı artırır, ağ maliyetlerini azaltır ve istemci tarafı ayrıştırma ek yükünü azaltır. Veri API oluşturucusu (DAB), sorgu parametresi aracılığıyla $select REST için projeksiyon uygular.
Uyarı
REST sorgu parametresi adları (dahil $select) büyük/küçük harfe duyarlıdır. Alan adları ayrıca yapılandırdığınız veya kullanıma sunulan öğelere göre büyük/küçük harfe duyarlıdır.
Bu belgenin GraphQL sürümüne gidin.
Temel seçim
Desen
GET /api/{entity}?$select=FieldA,FieldB,FieldC
$select Atlanırsa, DAB çağıranın rolünün okuma yetkisine sahip olduğu tüm alanları döndürür (ve yapılandırma ve exclude alan düzeyinde izinlere tabidirinclude). gibi *joker karakter belirteci yoktur; tam izin verilen şeklin nasıl istendiğiniz atlanır $select .
Örnekler
# Return all accessible fields
GET /api/author
# Return only first_name
GET /api/author?$select=first_name
# Return only first_name and last_name
GET /api/author?$select=first_name,last_name
İç ve yanıt sütunları
Birincil anahtarı veya sıralama alanlarını yansıtmanız gerekmez. Atlanırsa, JSON yanıtında görünmezler. Ancak DAB, güvenlik ilkelerini (satır düzeyi filtreler, alan maskeleri) zorunlu kılmak ve sayfalandırma imleçlerini ($after / nextLink) işlemek için gereken ek sütunları dahili olarak getirebilir.
Uyarı
Dahili olarak getirilen bu sütunlar, açıkça istemediğiniz sürece yanıt öncesinde kaldırılır.
Example
GET /api/book?$select=id,title&$orderby=publisher_id desc&$first=5
Kavramsal SQL
SELECT TOP (6) -- first (5) + 1 probe row for paging
[b].[id],
[b].[sku_title] AS title
FROM dbo.books AS [b]
ORDER BY [b].[publisher_id] DESC, [b].[id] ASC;
Yanıt
{
"value": [
{ "id": 101, "title": "Example 1" },
{ "id": 77, "title": "Example 2" },
{ "id": 42, "title": "Example 3" },
{ "id": 33, "title": "Example 4" },
{ "id": 5, "title": "Example 5" }
],
"nextLink": "..."
}
Sayfalandırma ve after anahtar sözcüğü hakkında daha fazla bilgi edinin.
Ek iç sütunlar ve altıncı yoklama satırı yükte görünmez.
Saklanan prosedürler
Saklı yordam destekli varlıklar için projeksiyon $select yan tümcesi olarak yorumlanmaz. Bunun yerine, sorgu dizesi anahtar/değer çiftleri (, $orderbyvb. gibi $filtertanınan sistem parametreleri dışında) saklı yordam parametreleri olarak kabul edilir.
$select hiçbir etkisi yoktur; yordamın sonuç kümesi şekli tanımlar.
Ö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.