before-interop / anomalieAdresse

Ce protocole permet le traitement d'une demande de création ou de modification d'adresses immeuble dans les IPE
https://before-interop.github.io/anomalieAdresse/
1 stars 6 forks source link

Définir les codes http 4xx et 5xx de l'opération event POST #72

Closed ericjacq92 closed 5 months ago

ericjacq92 commented 5 months ago

Postée par Bytel. Cette issue est remonté par nos équipe technique en charge d'implémenter le swagger.

Sur l'opération event, les codes erreurs n'ont pas été définis : 4xx et 5xx ne sont pas précisées ==> peut on les définir comme pour les autres méthodes.

ggrebert commented 5 months ago

Elles sont positionnées par default

You can use the default response to describe these errors collectively, not individually. “Default” means this response is used for all HTTP codes that are not covered individually for this operation.

Voici les implémentations:

vmeunier commented 5 months ago

Je pense que l'issue n'a pas été comprise. On parle de https://github.com/before-interop/anomalieAdresse/blob/main/openapi.yaml#L773 et https://github.com/before-interop/anomalieAdresse/blob/main/openapi.yaml#L781

En Spring par exemple, le générateur tente de mapper les codes http indiqués avec des vraies valeurs énumérées. Or, en http un retour "4xx" ça n'existe pas et "5xx" non plus

ggrebert commented 5 months ago

Donc c'est un problème Spring.

Peut-on clore cette issue ?

ggrebert commented 5 months ago

Selon la doc OpenApi et Swagger, cette nomenclature est autorisée

https://swagger.io/docs/specification/describing-responses/

image

vmeunier commented 5 months ago

Y a la théorie de la spécification ultra permissive (à tort selon moi) de Open API, et la réalité terrain de je dois coder ce qui est indiqué ici. Nous sommes "OpenAPI first", donc le fichier est obligatoirement utilisable par les générateurs de code fournis par les mêmes personnes qui font ces specs, et donc c'est sympa de leur part, mais on n'a aucun moyen de générer du code valide avec les 4xx et 5xx. J'ai tenté de générer en client/serveur (sur quasi tous les langages) sur editor-next.swagger.io et ça ne fonctionne pas non plus. De ma fenêtre aucun générateur de code ne sait faire, on ne peut pas modifier le swagger pour parvenir à générer... Est-ce que vous générez votre code à partir de ces fichiers ?

Et si oui avec quel générateur ?

vmeunier commented 5 months ago

Note : j'ai bien compris l'intention derrière, et je ne la remets pas en cause, juste qu'on ne sait pas comment s'en sortir, et en vrai je me demande si c'est réellement utile de préciser qu'on peut recevoir des 5xx et 4xx, ça me parait tellement évident que oui, et tout le temps, même un google n'aura jamais que des 200 OK à répondre

ggrebert commented 5 months ago

Après analyse, c'est le seul endpoint que vous devez implémenter en tant que OC. Est il vraiment nécessaire de modifier la doc (qui est correct) pour juste 1 seul endpoint à implémenter ?

Etant donné que ce endpoint est un webhook, je préfère garder une règle générique pour éviter aux OI une gestion complexe des retries.

De plus, gérer tous les cas spécifiques aux contraintes SI de chaque OC pourrais polluer la spec Interop.

ggrebert commented 5 months ago

Vu avec Btel: OK pour cloture