Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Classement des résultats dans REST (
L’ordre définit la séquence d’enregistrements retournés et sous-tend la pagination stable. Dans REST, le générateur d’API de données (DAB) utilise le $orderby paramètre de requête pour trier les résultats avant d’appliquer $first ou $after. Si vous omettez $orderby, DAB effectue le tri par défaut par la clé primaire (croissant).
Note
Pour les clés primaires composites, DAB commande par la séquence de colonnes de base de données.
Accédez à la version GraphQL de ce document.
Aperçu
| Concept | Descriptif |
|---|---|
| Paramètre de requête. | $orderby |
| Jetons de direction |
asc, desc |
| Ordre par défaut | Clé primaire croissant |
| Ordre de plusieurs champs | Liste de champs séparés par des virgules |
| Saut d’égalité | Autres champs de clé primaire ajoutés automatiquement |
Modèle d’utilisation
GET /api/{entity}?$orderby=FieldA [asc|desc], FieldB desc
Example
Carnets de commandes par année décroissant, puis titre croissant.
GET /api/books?$orderby=year desc, title asc&$first=5
SQL conceptuel
SELECT TOP (5)
id,
sku_title AS title,
year
FROM dbo.books
ORDER BY year DESC, sku_title ASC, id ASC;
Exemple de réponse
{
"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 }
]
}
Règles
| Règle | Détail |
|---|---|
| Délimiteur | Virgule + espace blanc facultatif |
| Mots clés de direction |
asc (par défaut), desc |
| Respect de la casse | Les noms de champs respectent la casse |
| Champ inconnu | Renvoie « 400 Invalid orderby column requested » |
| Syntaxe non prise en charge | Renvoie « 400 OrderBy property is not supported. » |
Exemples d’erreurs
Nom de champ non valide :
400 Invalid orderby column requested: publishedYear
Jeton non pris en charge :
400 OrderBy property is not supported.
Interaction avec $select
Lorsque vous triez par un champ qui n’est pas présent, $selectDAB l’extrait en interne pour l’ordre ou la création du curseur, mais l’omet à partir de la charge utile finale.
Configuration appropriée
{
"entities": {
"Book": {
"source": {
"object": "dbo.books",
"type": "table"
},
"mappings": {
"sku_title": "title"
}
}
}
}
Exemple de configuration
{
"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" ]
}
}
}
}
}
Voir aussi
| Concept | REST | GraphQL | Objectif |
|---|---|---|---|
| Projection | $select | Éléments | Choisir les champs à retourner |
| Filtrage | $filter | filtre | Restreindre les lignes par condition |
| Tri | $orderby | orderBy | Définir l’ordre de tri |
| Taille de la page | $first | first | Limiter le nombre d’éléments par page |
| Continuation | $after | après | Continuer à partir de la dernière page à l’aide d’un curseur |
Note
Les mots clés REST commencent par $les conventions OData suivantes.