Webservices - Paramètres de retour facultatif

configuration Apache, Zend et PHP , Web services
Répondre
PBL
Messages : 16
Enregistré le : ven. 22 nov. 2019, 15:20:16

Webservices - Paramètres de retour facultatif

Message 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.

nbonnet
Messages : 198
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: Webservices - Paramètres de retour facultatif

Message 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
Nathanaël

PBL
Messages : 16
Enregistré le : ven. 22 nov. 2019, 15:20:16

Re: Webservices - Paramètres de retour facultatif

Message 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.

SebastienB
Messages : 51
Enregistré le : ven. 22 janv. 2021, 10:21:13

Re: Webservices - Paramètres de retour facultatif

Message 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.

nbonnet
Messages : 198
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: Webservices - Paramètres de retour facultatif

Message 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
Nathanaël

PBL
Messages : 16
Enregistré le : ven. 22 nov. 2019, 15:20:16

Re: Webservices - Paramètres de retour facultatif

Message 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.

Répondre