Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Projekce vám pomůže vrátit jenom to, co váš klient skutečně potřebuje. Menší datové části zlepšují výkon, snižují náklady na síť a snižují náklady na analýzu na straně klienta. Tvůrce rozhraní DATA API (DAB) implementuje projekci rest prostřednictvím parametru $select dotazu.
Poznámka:
V názvech parametrů dotazu REST (včetně $select) se rozlišují malá a velká písmena. V závislosti na tom, co jste nakonfigurovali nebo odhalili, rozlišují se v názvech polí také malá a velká písmena.
Přejděte do verze GraphQL tohoto dokumentu.
Základní výběr
Vzor
GET /api/{entity}?$select=FieldA,FieldB,FieldC
Pokud $select tento argument vynecháte, vrátí DAB všechna pole, která má role volajícího oprávnění ke čtení (s výhradou include a konfigurací a exclude oprávněními na úrovni pole). Neexistuje žádný zástupný token, například *– vynechání $select je způsob vyžádání úplného povoleného obrazce.
Examples
# 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
Interní sloupce vs. odpovědi
Pole primárního klíče ani řazení nemusíte projektovat. Pokud tento parametr vynecháte, nezobrazí se v odpovědi JSON. DAB ale může interně načítat další sloupce potřebné k vynucení zásad zabezpečení (filtry na úrovni řádků, masky polí) a zpracování kurzorů stránkování ($after / nextLink).
Poznámka:
Tyto interně načtené sloupce se před odpovědí odeberou, pokud je explicitně nepožádáte.
Example
GET /api/book?$select=id,title&$orderby=publisher_id desc&$first=5
Koncepční 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;
Odezva
{
"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": "..."
}
Přečtěte si další informace o stránkování a po klíčovém slově.
Další interní sloupce a šestý řádek sondy nejsou v datové části viditelné.
Uložené procedury
U entit založených na uložených procedurách $select není interpretována jako klauzule projekce. Místo toho se páry klíč/hodnota řetězce dotazu (s výjimkou rozpoznaných systémových parametrů jako $filter, $orderbyatd.) považují za parametry uložené procedury.
$select nemá žádný účinek; sada výsledků procedury definuje obrazec.
Příklad konfigurace
{
"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" ]
}
}
}
}
}
Viz také
| Koncepce | REST | GraphQL | Účel |
|---|---|---|---|
| Projection | $select | items | Výběr polí, která se mají vrátit |
| Filtering | $filter | filtr | Omezení řádků podle podmínky |
| Řazení | $orderby | orderBy | Definování pořadí řazení |
| Velikost stránky | $first | first | Omezení počtu položek na stránku |
| Pokračování | $after | po | Pokračovat z poslední stránky pomocí kurzoru |
Poznámka:
Klíčová slova REST začínají následujícími konvencemi $OData.