Development #34664
astregs : renvoyer le payload json au webservice de création d'association
0%
Description
cf. Service_Web_TIERS_2.04 Astre v2.02.005.doc
Champs "Sigle : Sigle du Tiers"
Fichiers
Révisions associées
Historique
Mis à jour par Serghei Mihai il y a presque 5 ans
- Fichier 0001-astregs-send-initials-on-association-creation-34664.patch 0001-astregs-send-initials-on-association-creation-34664.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a presque 5 ans
acronym plutôt que initials ? (j'ai mis de mon côté du temps à comprendre pourquoi "initials")
Mis à jour par Serghei Mihai il y a presque 5 ans
- Fichier 0001-astregs-send-acronym-on-association-creation-34664.patch 0001-astregs-send-acronym-on-association-creation-34664.patch ajouté
J'ai pris la première suggestion des sites de traduction mais 'acronym' c'est mieux.
Mis à jour par Thomas Noël il y a presque 5 ans
- Statut changé de Solution proposée à Solution validée
En fait la meilleure adaptation serait peut-être "abbreviation" plutôt que "acronym". Tu choisiras finalement.
Et le jour où on saura afficher les JSONSchema des endpoints dans la page de details d'un connecteur, on fera en sorte que la description dise bien qu'il s'agit de "Sigle". (et je me dis que tu aurais pu envoyer tel que le post_data reçu, ni vérification ni transformation, pas de schéma... parce que si ça bouge sans arrêt comme ça, t'as pas fini, et va falloir documenter toute les translations, et la réponse va pas avoir la même syntaxe, etc.)
Mis à jour par Serghei Mihai il y a presque 5 ans
Je vais m'arrêter à "acronym".
Effectivement j'aurais pu renvoyer le payload tel quel et laisser l'API en face exploser si un paramètre ne convenait pas, mais ça m'embête de ne faire aucune vérification des données en entrée, au moins les paramètres obligatoires.
Mis à jour par Thomas Noël il y a presque 5 ans
Serghei Mihai a écrit :
Je vais m'arrêter à "acronym".
Effectivement j'aurais pu renvoyer le payload tel quel et laisser l'API en face exploser si un paramètre ne convenait pas, mais ça m'embête de ne faire aucune vérification des données en entrée, au moins les paramètres obligatoires.
Zeep le fait déjà gratuitement, selon le WSDL qui décrit déjà le schéma que tu ne fais que répéter ici. Puis, éventuellement, le logiciel en face.
Mis à jour par Serghei Mihai il y a presque 5 ans
Zeep laisse tout passer vu la WSDL:
<complexType name="Contact"> <sequence> <element name="idContact" nillable="true" type="xsd:string"/> <element name="CodeContact" nillable="true" type="xsd:string"/> <element name="CodeTitreCivilite" nillable="true" type="xsd:string"/> <element name="Nom" nillable="true" type="xsd:string"/> <element name="Prenom" nillable="true" type="xsd:string"/> <element name="NomDeJeuneFille" nillable="true" type="xsd:string"/> <element name="DateDeNaissance" nillable="true" type="xsd:string"/> <element name="FormuleCivilite" nillable="true" type="xsd:string"/> <element name="IntituleTitre2" nillable="true" type="xsd:string"/> <element name="IntituleTitre3" nillable="true" type="xsd:string"/> <element name="IntituleTitre4" nillable="true" type="xsd:string"/> <element name="SituationDeFamille" nillable="true" type="xsd:string"/> <element name="CodeFonction" nillable="true" type="xsd:string"/> <element name="LibelleFonction" nillable="true" type="xsd:string"/> <element name="TelephoneBureau" nillable="true" type="xsd:string"/> <element name="TelephoneMobile" nillable="true" type="xsd:string"/> <element name="NumeroDeFax" nillable="true" type="xsd:string"/> <element name="AdresseMail" nillable="true" type="xsd:string"/> <element name="PageWeb" nillable="true" type="xsd:string"/> <element name="AdresseDestinataire" nillable="true" type="xsd:string"/> <element name="AdresseComplementaire" nillable="true" type="xsd:string"/> <element name="ComplementGeographique" nillable="true" type="xsd:string"/> <element name="RueVoie" nillable="true" type="xsd:string"/> <element name="ComplementVoie" nillable="true" type="xsd:string"/> <element name="CodePostal" nillable="true" type="xsd:string"/> <element name="Ville" nillable="true" type="xsd:string"/> <element name="CodePays" nillable="true" type="xsd:string"/> <element name="LibellePays" nillable="true" type="xsd:string"/> <element name="LibelleAdresse" nillable="true" type="xsd:string"/> <element name="Commentaire" nillable="true" type="xsd:string"/> </sequence> </complexType>
mais misons sur les erreurs levées par le logiciel.
Mis à jour par Serghei Mihai il y a presque 5 ans
- Fichier 0001-astregs-forward-json-payload-as-it-is-for-associatio.patch 0001-astregs-forward-json-payload-as-it-is-for-associatio.patch ajouté
- Sujet changé de astregs : ajouter le champs Sigle sur le WS de création d'un tiers à astregs : renvoyer le payload json au webservice de création d'association
- Statut changé de Solution validée à Solution proposée
Nouveau patch avec transfer du payload json tel quel au WS en face (et je mets à jour le titre du ticket)
Mis à jour par Serghei Mihai il y a presque 5 ans
- Fichier 0001-astregs-forward-json-payload-as-it-is-for-associatio.patch 0001-astregs-forward-json-payload-as-it-is-for-associatio.patch ajouté
Sans la déclaration du schema JSON.
Mis à jour par Thomas Noël il y a presque 5 ans
En fait je viens de voir avec Emmanuel : la validation du schéma JSON n'empêche pas le payload de contenir des trucs en plus.
Donc on peut très bien garder un schéma JSON, mais qui suivra les noms des arguments attendus par le WSDL. Peut-être réduire à quelques arguments qu'on sait être indispensables et qui ne changeront pas...
Comme ça tu gagnes le post_data au lieu de faire un json.loads un peu moche, et le endpoint reste "joli".
Mis à jour par Serghei Mihai il y a presque 5 ans
- Statut changé de Solution proposée à En cours
Ok, je fais ça.
Mis à jour par Serghei Mihai il y a presque 5 ans
- Fichier 0001-astregs-update-payload-params-names-for-association-.patch 0001-astregs-update-payload-params-names-for-association-.patch ajouté
- Statut changé de En cours à Solution proposée
Et voilà.
Branche renommée et mise à jour sur le master.
Mis à jour par Thomas Noël il y a presque 5 ans
Pfff je ne le vois que maintenant, les booléens, genre « 'AdresseIsAdresseDeFacturation': False ». w.c.s. on ne peut pas envoyer ça (sauf à passer par du Python, et il ne faut pas).
Ca donne quoi si tu envoies des strings ? Ca plante au niveau du validateur de schéma JSON ?
(et là, le transformateur #34178 serait sympa j'imagine)
Mis à jour par Serghei Mihai il y a presque 5 ans
- Fichier 0001-astregs-update-payload-params-names-for-association-.patch 0001-astregs-update-payload-params-names-for-association-.patch ajouté
Et je constate que:
<element name="Financier" nillable="true" type="xsd:string"/>
Donc les paramètres en tant que strings passent.
Je viens de créer une nouvelle association sur la recette en passant:
'AdresseIsAdresseDeCommande': 'False', 'AdresseIsAdresseDeFacturation': 'False', 'Financier': 'True'
et ça fonctionne.
Mis à jour par Serghei Mihai il y a presque 5 ans
Oublié de préciser: il est posé dans mon patch.
Mis à jour par Serghei Mihai il y a presque 5 ans
- Fichier 0001-astregs-update-payload-params-names-for-association-.patch 0001-astregs-update-payload-params-names-for-association-.patch ajouté
Les paramètres doivent être en minuscule, sinon le WS en face considère que c'est du false
.
Mis à jour par Thomas Noël il y a presque 5 ans
- Statut changé de Solution proposée à Solution validée
Allez hop zou.
Mis à jour par Serghei Mihai il y a presque 5 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit bd01a1a48e787247523626b33fefa5920cd785bb (origin/master, origin/HEAD) Author: Serghei Mihai <smihai@entrouvert.com> Date: Tue Jul 9 09:52:13 2019 +0200 astregs: update payload params names for association creation (#34664)
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
Serghei Mihai a écrit :
Et je constate que:
[...]Donc les paramètres en tant que strings passent.
Je viens de créer une nouvelle association sur la recette en passant:
[...]et ça fonctionne.
Ça passe mais t'es sûr des valeurs ? False ça donne faux et True ça donne vrai de l'autre coté ? J'ai une extrême méfiance avec les booléens en SOAP qu'ils soient implémentés selon la norme ou de travers comme ici.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
Serghei Mihai a écrit :
Les paramètres doivent être en minuscule, sinon le WS en face considère que c'est du
false
.
Ok, ignore mon autre commentaire, oui tu dois pouvoir passer 0 ou 1 aussi, c'est juste qu'il parse du xs:string comme du xs:boolean.
Mis à jour par Frédéric Péters il y a presque 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
astregs: update payload params names for association creation (#34664)