Aller au contenu principal
Version: 20

A propos des requêtes REST

Les structures suivantes sont prises en charge par les requêtes REST :

URIResource (Input)/? or &{filter} (Output)
http://{servername}:{port}/rest/{dataClass}$filter, $attributes, $skip, $method=......
{dataClass}/$entityset/{entitySetID}$method=...
{dataClass}({key})$attributes
{dataClass}:{attribute}(value)

Alors que toutes les requêtes REST doivent contenir les paramètres URI et Resource, les filtres d'Output (qui filtrent les données retournées) sont facultatifs.

Comme pour tous les URI, le premier paramètre est délimité par un «?» et tous les paramètres suivants par un «&». Par exemple :

GET /rest/Person/?$filter="lastName!=Jones"&$method=entityset&$timeout=600

Vous pouvez placer toutes les valeurs entre guillemets en cas de doute. Par exemple, dans notre exemple ci-dessus, nous aurions pu saisir la valeur du nom de famille entre guillemets simples "lastName!='Jones'".

Les paramètres vous permettent de manipuler des données dans des dataclass de votre projet 4D. Outre la récupération de données à l'aide des méthodes HTTP GET, vous pouvez également ajouter, mettre à jour et supprimer des entités d'une dataclass à l'aide des méthodes HTTP POST.

Si vous souhaitez que les données soient retournées dans un tableau au lieu d'un JSON, utilisez le paramètre $asArray.

Statut et réponse REST

À chaque requête REST, le serveur retourne l'état et une réponse (avec ou sans erreur).

Statut de la requête

Avec chaque requête REST, vous obtenez le statut et la réponse. Voici quelques exemples de statuts :

StatutDescription
0Requête non traitée (le serveur n'est peut-être pas été lancé).
200 OKRequête traitée sans erreur.
401 UnauthorizedErreur d'autorisation (vérifiez les autorisations de l'utilisateur).
402 No sessionNombre maximal de sessions ayant été atteint.
404 Not FoundLa data n'est pas accessible via REST ou bien l'ensemble d'entités n'existe pas.
500 Internal Server ErrorErreur lors du traitement de la requête REST.

Réponse

La réponse (au format JSON) varie en fonction de la requête.

Si une erreur survient, elle sera envoyée avec la réponse du serveur ou bien ce sera la réponse du serveur.