Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ordenando resultados em REST (
A ordenação define a sequência de registros retornados e sustenta a paginação estável. No REST, o DAB (Construtor de API de Dados) usa o $orderby parâmetro de consulta para classificar os resultados antes de $first aplicar ou $after. Se você omitir $orderby, o DAB usará como padrão a classificação pela chave primária (crescente).
Observação
Para chaves primárias compostas, o DAB é pedido pela sequência de colunas do banco de dados.
Acesse a versão do GraphQL deste documento.
Visão geral
| Conceito | Description |
|---|---|
| Parâmetro de consulta | $orderby |
| Tokens de direção |
asc, desc |
| Ordem padrão | Chave primária crescente |
| Ordem de vários campos | Lista de campos separados por vírgulas |
| Tie-break | Campos de chave primária restantes acrescentados automaticamente |
Padrão de uso
GET /api/{entity}?$orderby=FieldA [asc|desc], FieldB desc
Example
Peça livros por ano decrescente, depois título crescente.
GET /api/books?$orderby=year desc, title asc&$first=5
SQL conceitual
SELECT TOP (5)
id,
sku_title AS title,
year
FROM dbo.books
ORDER BY year DESC, sku_title ASC, id ASC;
Resposta de exemplo
{
"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 }
]
}
Regras
| Regra | Detalhes |
|---|---|
| Delimitador | Vírgula + espaço em branco opcional |
| Palavras-chave de direção |
asc (padrão), desc |
| Diferenciação de maiúsculas e minúsculas | Os nomes de campo diferenciam maiúsculas de minúsculas |
| Campo desconhecido | Retorna 400 Invalid orderby column requested |
| Sintaxe incompatível | Retorna 400 OrderBy property is not supported. |
Erros de exemplo
Nome do campo inválido:
400 Invalid orderby column requested: publishedYear
Token sem suporte:
400 OrderBy property is not supported.
Interação com $select
Quando você classifica por um campo não presente, $selecto DAB o busca internamente para ordenação ou criação de cursor, mas omite-o do conteúdo final.
Configuração relevante
{
"entities": {
"Book": {
"source": {
"object": "dbo.books",
"type": "table"
},
"mappings": {
"sku_title": "title"
}
}
}
}
Configuração de exemplo
{
"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" ]
}
}
}
}
}
Consulte também
| Conceito | REST | GraphQL | Propósito |
|---|---|---|---|
| Projection | $select | items | Escolher quais campos retornar |
| Filtragem | $filter | filtro | Restringir linhas por condição |
| Classificação | $orderby | orderBy | Definir a ordem de classificação |
| Tamanho da página | $first | first | Limitar o número de itens por página |
| Continuação | $after | depois | Continuar da última página usando um cursor |
Observação
As palavras-chave REST começam com $, seguindo as convenções OData.