Page 1 sur 1

Webservices - Paramètres de retour facultatif

Posté : mer. 22 sept. 2021, 14:13:40
par PBL
Bonjour,

Est-il possible pour des webservices (de type REST) d'avoir des paramètres de retour facultatifs ?
Ace jour, nous avons un paramètre de retour pour gérer les erreurs métiers et un paramètre (ou plusieurs) de retour de données métiers et nous retournons dans tous les cas ces paramètres (avec ou sans valeur selon le résultat)
=> lors d'une erreur métier, nous aimerions ne retourner que le paramètre d'erreur et inversement.

Merci.

Re: Webservices - Paramètres de retour facultatif

Posté : mer. 22 sept. 2021, 14:16:37
par nbonnet
Bonjour,

Oui, vous pouvez déclarer un paramètre comme étant le paramètre d'erreur : s'il y a une erreur (c'est à dire un code statut HTTP dans la classe des 400), seul le paramètre d'erreur est retourné. Sinon ce sont les autres paramètres en sortie.

Autre solution : retourner un unique paramètre dans tous les cas, charge à votre programme de l'alimenter avec ce qu'il convient

Cordialement

Re: Webservices - Paramètres de retour facultatif

Posté : jeu. 23 sept. 2021, 10:31:04
par PBL
Bonjour,

Merci pour ces infos.
Nous avons effectivement réussi à gérer le paramètre de retour facultatif grâce au paramètre retour d'erreur (Error response output parameter).
Nous avons comme limitation :
- L'impossibilité de définir ce paramètre retour d'erreur sous forme de structure de données (mais on contourne le problème en construisant manuellement le JSON dans le RPGLE).
- L'obligation de définir le même code retour HTTP Statut dans le paramètre de retour d'erreur ET le code HTTP Statut du programme RPGLE.
Est-il possible de les désolidariser ? Cela nous permettrait de gérer des codes HTTP Statut spécifiques aux règles métiers du programme RPGLE.
Ex souhaité : Code HTTP Statut IWS (HTTP status code on procedure call failure) = 400
Code HTTP Statut du programme RPGLE : 421, 422, ...

Merci.

Re: Webservices - Paramètres de retour facultatif

Posté : jeu. 23 sept. 2021, 10:41:02
par SebastienB
Bonjour,

d'après Wikipedia (https://en.wikipedia.org/wiki/List_of_H ... der_fields), dans "Common non-standard response fields" il existe un champ "Status".
Je n'ai jamais utilisé ou entendu parlé, donc à vérifier ...

Séb.

Re: Webservices - Paramètres de retour facultatif

Posté : jeu. 23 sept. 2021, 11:49:36
par nbonnet
Bonjour,

j'avais testé l'utilisation de code HTTP status non standard : l'implémentation ne sait pas les gérer (cela parait normal).
De plus, le non respect de la norme pourrait poser des souci au niveau du réseau (firewall, routeur etc ...) qui introspecte de plus en plus le contenu des communications

Re: Webservices - Paramètres de retour facultatif

Posté : ven. 24 sept. 2021, 09:37:39
par PBL
Bonjour,
En fait, nous comptons regrouper les erreurs métiers gérées par programme en s'appuyant sur des codes HTTP standards (ex : "422 = Unprocessable entity" lors d'un paramètre d'entrée non conforme), mais nous aurions bien différents codes HTTP retournés selon les cas.
Le problème est que l'utilisation du paramètre retour d'erreur nous oblige à n'utiliser en code HTTP géré par programme qu'un seul code et le même que celui paramétré pour le webservice dans IWS (HTTP status code on SQL failure).
C'est cette limitation que nous aimerions dépasser.

Merci.