Partager via


Comment appeler des points de terminaison REST

Le générateur d’API de données (DAB) fournit une API web RESTful qui vous permet d’accéder aux tables, vues et procédures stockées à partir d’une base de données connectée. Chaque objet de base de données exposé est défini comme une entité dans la configuration du runtime.

Par défaut, DAB héberge les points de terminaison REST à l’adresse suivante :

https://{base_url}/api/{entity}

Remarque

Tous les composants de chemin d’accès et les paramètres de requête sont sensibles à la casse.

Mots clés pris en charge dans le générateur d’API de données

Concept REST Objectif
Projection $select Choisir les champs à retourner
Filtrage $filter Restreindre les lignes par condition
Tri $orderby Définir l’ordre de tri
Taille de la page $first Limiter les éléments par page
Suite $after Continuer à partir de la dernière page

Structure de base

Pour appeler une API REST, construisez une requête à l’aide de ce modèle :

{HTTP method} https://{base_url}/{rest-path}/{entity}

Exemple de lecture de tous les enregistrements de l’entité book :

GET https://localhost:5001/api/book

La réponse est un objet JSON :

{
  "value": [
    { "id": 1, "title": "Dune" },
    { "id": 2, "title": "Foundation" }
  ]
}

Remarque

Par défaut, DAB retourne jusqu’à 100 éléments par requête, sauf configuration contraire (runtime.pagination.default-page-size).

Types de requêtes

Chaque entité REST prend en charge à la fois la lecture des collections et celle des enregistrements individuels.

Opération Descriptif
GET /api/{entity} Retourne une liste d’enregistrements
GET /api/{entity}/{primary-key-column}/{primary-key-value} Retourne un enregistrement par clé primaire

Exemple de retour d’un enregistrement :

GET /api/book/id/1010

Exemple renvoyant plusieurs éléments :

GET /api/book

Filtrage des résultats

Utilisez le $filter paramètre de requête pour restreindre les enregistrements retournés.

GET /api/book?$filter=title eq 'Foundation'

Cette requête retourne tous les livres dont le titre est égal à « Foundation ».

Les filtres peuvent inclure des opérateurs logiques pour des requêtes plus complexes :

GET /api/book?$filter=year ge 1970 or title eq 'Dune'

Consultez la référence de l’argument $filter pour des opérateurs pris en charge tels que eqne, lt, le, and, et or.

Tri des résultats

Le $orderby paramètre définit la façon dont les enregistrements sont triés.

GET /api/book?$orderby=year desc, title asc

Cela classe les livres par year décroissant, puis par title.

Pour plus d’informations, consultez la référence de l’argument $orderby .

Limitation des résultats {#first-and-after}

Le $first paramètre limite le nombre d’enregistrements retournés dans une requête.

GET /api/book?$first=5

Cela retourne les cinq premiers livres, classés par clé primaire par défaut. Vous pouvez également utiliser $first=-1 pour demander la taille de page maximale configurée.

Pour en savoir plus, consultez la référence de l’argument $first.

Résultats continus

Pour récupérer la page suivante, utilisez $after avec le jeton de continuation issu de la réponse précédente.

GET /api/book?$first=5&$after={continuation-token}

Le $after jeton identifie l’endroit où la dernière requête s’est terminée. Pour plus d'informations, consultez la section référence de l'argument $after pour les détails.

Sélection de champ (projection)

Permet $select de contrôler les champs inclus dans la réponse.

GET /api/book?$select=id,title,price

Cela retourne uniquement les colonnes spécifiées. Si un champ est manquant ou n’est pas accessible, DAB retourne 400 Bad Request.

Consultez référence de l'argument $select pour plus de détails.

Modification des données

L’API REST prend également en charge les opérations de création, de mise à jour et de suppression en fonction des autorisations d’entité.

Méthode Action
POST Créer un élément
PUT Remplacer un élément existant (ou créer s’il est manquant)
PATCH Mettre à jour un élément existant (ou créer s’il est manquant)
DELETE Supprimer un élément par clé primaire

Exemple de création d’un nouvel enregistrement :

POST /api/book
Content-type: application/json

{
  "id": 2000,
  "title": "Leviathan Wakes"
}

Exemple de mise à jour d’un enregistrement existant :

PATCH /api/book/id/2000
Content-type: application/json

{
  "year": 2011,
  "pages": 577
}

Exemple de suppression d’un enregistrement :

DELETE /api/book/id/2000