Development #14838
ajouter un connecteur API particulier
0%
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a environ 7 ans
- Fichier 0001-add-connector-for-API-Particulier-14838.patch 0001-add-connector-for-API-Particulier-14838.patch ajouté
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a environ 7 ans
- Fichier 0001-add-connector-for-API-Particulier-14838.patch 0001-add-connector-for-API-Particulier-14838.patch ajouté
Correction d'une typo sur l'URL du service impots/adresse.
Mis à jour par Frédéric Péters il y a environ 7 ans
Pas fan du endpoint_get() qui permet trop facilement de changer les URL et de ne pas voir que ça cassera tout.
Mis à jour par Benjamin Dauvergne il y a environ 7 ans
- Fichier 0001-add-connector-for-API-Particulier-14838.patch 0001-add-connector-for-API-Particulier-14838.patch ajouté
1. Migration ajoutée.
2. Paramètre expected_url ajouté à endpoint_get, ça vérifie à la fois que le routage est bon et que l'URL n'a pas changée.
Mis à jour par Serghei Mihai il y a environ 7 ans
Il manque:
category = _('Business Process Connectors') ... class Meta: verbose_name = _('API Particulier') @classmethod def is_enabled(cls): return True @classmethod def get_verbose_name(cls): return cls._meta.verbose_name @classmethod def get_icon_class(cls): return 'ressources'
dans le modèle pour que le connecteur soit visible dans le backoffice et un template html decrivant les endpoints.
Mis à jour par Frédéric Péters il y a environ 7 ans
Il manque:
De manière plus haut niveau, une description (du besoin et) de l'usage imaginé.
Mis à jour par Benjamin Dauvergne il y a environ 7 ans
- Fichier 0001-add-connector-for-API-Particulier-14838.patch 0001-add-connector-for-API-Particulier-14838.patch ajouté
Commentaires intégrés, sauf is_enabled/get_verbose_name parce que j'espère bien le ticket #15314 intégré d'ici là.
Le cas d'usage ce sont les démarches demandant le revenu fiscal de référence ou le quotient familial de la CAF.
Mis à jour par Pierre Cros il y a environ 7 ans
Pour Fred, le cas d'usage :
La ville de Lyon fait ça avec Lutèce, on l'avait vu, pour permettre le
calcul du quotient familial :
https://qf.lyon.fr/
Mis à jour par Frédéric Péters il y a presque 7 ans
- Statut changé de Nouveau à En cours
Discussion à avoir mais il semblerait qu'on ne veuille pas lever d'erreur 500 sur des situations connues.
J'encourage la déclaration des applications préfixées par passerelle.apps.
Le get_icon_class n'est enfin plus nécessaire.
Le api_particulier_detail.html devrait être nommé apiparticulier_detail.html (est-ce un changement raté récemment ou la page n'a jamais été visitée ?).
Les URL mentionnées ne fonctionnent pas parce qu'elles devraient être en /api-particulier/ et pas /api_particulier/ et qu'il faut pour ça également ajouter :
@classmethod def get_connector_slug(cls): return 'api-particulier'
Il est fait mention de particulier-mock.api.gouv.fr mais ce domaine ne résoud pas chez moi.
Pour la plateforme de dev, j'ai un "connexion refusée".
L'ordre test/prod/dev/mock est pour moi curieux, j'aurais plutôt imaginé prod/test/dev/mock.
Mis à jour par Frédéric Péters il y a presque 7 ans
Sur l'endpoint correspondant à impots_adresse API Particulier répond par une 404 (plateforme de test). Sur les endpoints CAF, le résultat est une erreur 500 d'API Particulier.
Mis à jour par Benjamin Dauvergne il y a presque 7 ans
Frédéric Péters a écrit :
Discussion à avoir mais il semblerait qu'on ne veuille pas lever d'erreur 500 sur des situations connues.
Je ne renvoie pas d'erreur 500
J'encourage la déclaration des applications préfixées par passerelle.apps.
Ok.
Le api_particulier_detail.html devrait être nommé apiparticulier_detail.html (est-ce un changement raté récemment ou la page n'a jamais été visitée ?).
Yep pas testé, j'ai ajouté un test.
Les URL mentionnées ne fonctionnent pas parce qu'elles devraient être en /api-particulier/ et pas /api_particulier/ et qu'il faut pour ça également ajouter :
[...]
Corrigé, ça appelle encore plus d'automatisation dans la génération des pages de détail (je pense qu'en ajoutant des catégorie et des descriptions au décoration endpoint on serait bon, on a du déjà le dire ailleurs je pense).
Il est fait mention de particulier-mock.api.gouv.fr mais ce domaine ne résoud pas chez moi.
Je ne sais plus d'où je l'ai sortir, je l'ai viré.
Pour la plateforme de dev, j'ai un "connexion refusée".
Je pense que j'avais trouvé toutes ces URLs sur https://particulier.api.gouv.fr/tech/ mais ils ont fait le ménage, je vire aussi.
L'ordre test/prod/dev/mock est pour moi curieux, j'aurais plutôt imaginé prod/test/dev/mock.
Ok, j'ai mis prod/test.
Voilà sur branche pour dernière relecture, http://git.entrouvert.org/passerelle.git/log/?h=wip/14838-api-particulier.
Mis à jour par Benjamin Dauvergne il y a presque 7 ans
Frédéric Péters a écrit :
Sur l'endpoint correspondant à impots_adresse API Particulier répond par une 404 (plateforme de test). Sur les endpoints CAF, le résultat est une erreur 500 d'API Particulier.
Pour impots_adresse si je mets n'importe quoi comme numéro fiscal j'ai une 400.
Oui le service de test CAF ne fonctionne pas actuellement.
Ces remarques pour dire que ?
Mis à jour par Frédéric Péters il y a presque 7 ans
Discussion à avoir mais il semblerait qu'on ne veuille pas lever d'erreur 500 sur des situations connues.
Je ne renvoie pas d'erreur 500
Ok j'ai du me faire avoir par l'encapsulation de leur erreur.
Pour impots_adresse si je mets n'importe quoi comme numéro fiscal j'ai une 400.
Sur la plateforme de test ?
Oui le service de test CAF ne fonctionne pas actuellement.
Ok, je ne l'avais pas deviné.
Ces remarques pour dire que ?
Que je teste, que je voulais voir l'intégration réelle avec w.c.s. pour être sûr de ne pas rater un truc flagrant.
Mis à jour par Benjamin Dauvergne il y a presque 7 ans
Frédéric Péters a écrit :
Sur la plateforme de test ?
Non tu as raison 404. Tu veux que je récupère ça pour en faire une erreur particulière ?
Mis à jour par Frédéric Péters il y a presque 7 ans
Non tu as raison 404. Tu veux que je récupère ça pour en faire une erreur particulière ?
Non, je suis surtout inquiet par rapport à leurs plateformes :/
À ce sujet, la plateforme de test, d'après https://particulier.api.gouv.fr/tech/ , ce serait désormais plutôt :
Test | particulier-sandbox.api.gouv.fr | test-token | Oui
(hostname différent) (mais leur doc pour les exemples CAF qui ne marchent pas pointe toujours sur particulier-test)
Mis à jour par Benjamin Dauvergne il y a presque 7 ans
Frédéric Péters a écrit :
Non tu as raison 404. Tu veux que je récupère ça pour en faire une erreur particulière ?
Non, je suis surtout inquiet par rapport à leurs plateformes :/
J'ai envoyé un mail pour voir à leur email de contact, demandant aussi si tout ça est bien en prod.
À ce sujet, la plateforme de test, d'après https://particulier.api.gouv.fr/tech/ , ce serait désormais plutôt :
Test | particulier-sandbox.api.gouv.fr | test-token | Oui
(hostname différent) (mais leur doc pour les exemples CAF qui ne marchent pas pointe toujours sur particulier-test)
Ok je change pour sandbox qui est celle qu'on voit dans les exemples pour les impôts qui marchent.
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Branche rebasée sur master, est-ce que ce serait poussable ? Je pense que ça
pourrait être annoncé dans les notes de releases comme un module expérimental
pour inciter des villes à s'en servir.
Mis à jour par Frédéric Péters il y a environ 6 ans
Il y a bien sûr d'abord à réunir les commits de la branche, avant de pouvoir pousser.
Il y a eu d'autres évolutions dans Passerelle depuis, d'un coup d'œil, serializer_type n'est plus nécessaire, la page de description du connecteur est mieux quand générée automatiquement, les connecteurs dans INSTALLED_APPS sont triés alphabétiquement.
De mon commentaire 15 je me dis aussi qu'à un moment j'ai du avoir en local un formulaire ou workflow pour tester ça mais je ne retrouve pas. Tu pourrais décrire l'utilisation formulaire/workflow côté wcs (ce qui semble nécessaire pour que les villes puissent s'en servir (et avant ça même, les CPF)).
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
- commits rebasés
- serializer_type retiré
- page de description automatique utilisée en majeur partie
- ordre dans INSTALLED_APPS respecté
J'ai aussi retiré les deux endpoints CAF qui ont disparu et ont été aggrégé dans l'unique restant "famille".
Je remarque à l'occasion qu'on permet de décrire le format des arguments mais pas le format retour des endpoints ça me parait vraiment manquant, ici le format des données est documenté dans les tests.
Pour un formulaire j'imagine une page seule demandant:- dans le cas fiscal le numéro fiscal de la personne et un numéro d'avis d'imposition,
- dans le cas allocation familiale, le code postal et le numéro d'allocataire.
Ensuite sur une deuxième page on peut afficher les informations retournées,
typiquement l'adresse dans les deux cas ou le QF pour le cas allocation
familiale.
En première actions de workflow on devrait refaire ces appels pour stocker la donnée dans un variable de workflow.
À noter que l'adresse retourner par la CAF n'a pas du tout la même forme que celle en provenance des impôts ce qui pourrait être gênant, mais c'est comme ça.
Mis à jour par Frédéric Péters il y a environ 6 ans
(je regarde e1bc6338a7229e82e3afda9bb844b4cfc6295754)
ordre dans INSTALLED_APPS respecté
Et pourtant :
'passerelle.apps.solis', + 'passerelle.apps.api_particulier',
page de description automatique utilisée en majeur partie
Mais pourquoi pas totalement ? Les éléments de description doivent pouvoir être tirés des paramètres du connecteur, et les paramètres en …_key rester cachés.
verbose_name=_('platform')
Il y faudrait une majuscule.
+ 'description': _('requesting user'),
Dans les tests il y est mis "John Doe" mais ce n'est pas clair pour moi ce qui doit s'y trouver, le prénom/nom de la personne de qui on récupère l'info ? Ou c'est la personne à l'origine de la demande, genre pour permettre à API Particulier un semblant de log de qui fait des demandes ?
Dans la version précédente, il y avait des valeurs d'exemple passées (code_postal=13260&numero_allocataire=15), au cas où c'est quelque chose qui peut également être fait ici, suffit d'ajouter example_value au dictionnaire décrivant le paramètre.
~~
Je remarque à l'occasion [...]
Tickets bienvenus, toujours.
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Frédéric Péters a écrit :
(je regarde e1bc6338a7229e82e3afda9bb844b4cfc6295754)
Mon push s'est perdu dans l'éther, c'est le bon maintenant, j'ai vérifié.
ordre dans INSTALLED_APPS respecté
Et pourtant :
[...]
Ouaip désolé.
page de description automatique utilisée en majeur partie
Mais pourquoi pas totalement ? Les éléments de description doivent pouvoir être tirés des paramètres du connecteur, et les paramètres en …_key rester cachés.
_platform
est une énumération et get_description_field() ne renvoie pas la valeur de get_display_<_field>. Je vais virer mon template ad-hoc et ouvrir un ticket là dessus.
verbose_name=_('platform')
Corrigé.
Il y faudrait une majuscule.
+ 'description': _('requesting user'),
Dans les tests il y est mis "John Doe" mais ce n'est pas clair pour moi ce qui doit s'y trouver, le prénom/nom de la personne de qui on récupère l'info ? Ou c'est la personne à l'origine de la demande, genre pour permettre à API Particulier un semblant de log de qui fait des demandes ?
Tout ça à la fois, voici ce qui est dit dans la doc:
Le citoyen ou l'agent
- Avec Curl, il suffit de passer le header HTTP: X-User
curl "https://particulier-sandbox.api.gouv.fr/api/impots/svair?numeroFiscal=12&referenceAvis=15" \
-H "X-API-KEY: test-token" \
-H "X-User: demo"Il est aussi possible d'identifier (sans authentifier) les citoyens ou les agents ayant déclenchés un appel donné. En effet, en cas de problème ou de fraude, les fournisseurs de données doivent être en mesure de dire quels étaient les utilisateurs de l'API Particulier. C'est pourquoi il existe un header HTTP facultatif X-User qui permet d'identifier l'utilisateur : celui-ci peut être un identifiant interne du fournisseur de service.
Au passage je découvre que API particulier est devenu aussi un FD FranceConnect, je n'y comprend plus rien.
France Connect
- Avec Curl, il suffit de passer le header HTTP: Authorization
curl "https://particulier-sandbox.api.gouv.fr/api/impots/svair?numeroFiscal=12&referenceAvis=15" \
-H "Authorization: Bearer <ACCESS-TOKEN>"Il est aussi possible de s'authentifier en tant que citoyen identifié via France Connect. Api Particulier étant un Fournisseur de Données, Il est possible pour un citoyen identifié auprès de France Connect d'accèder à ses données personnelles (et uniquement celles le concernant) en suivant le protocole OpenID Connect.
C'est une bonne nouvelle parce qu'il me semble que c'est bien plus facile d'obtenir une API key sur API particulier que de s'adresse à la DGFIP.
Dans la version précédente, il y avait des valeurs d'exemple passées (code_postal=13260&numero_allocataire=15), au cas où c'est quelque chose qui peut également être fait ici, suffit d'ajouter example_value au dictionnaire décrivant le paramètre.
J'ai repris ceux de la doc, ça permet de tester directement.
Je remarque à l'occasion [...]
Tickets bienvenus, toujours.
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
À noter que j'ai testé localement vers la vrai instance de FC, les 3 endpoints fonctionnent (je pourrai rajouter un tel test, ça ne mange pas de pain).
Mis à jour par Frédéric Péters il y a environ 6 ans
- Lié à Bug #21775: get_descripion_fields() devrait utiliser get_<field>_display() quand il est présent ajouté
Mis à jour par Serghei Mihai il y a environ 6 ans
self.get('impots/adress'
Il manque le e
à la fin.
Dans tests/utils.py
il y a déjà la fonction setup_access_rights
. Il faudrait l'utiliser dans make_ressource
(à renommer au passage en make_resource
, en anglais)
Mis à jour par Thomas Noël il y a environ 6 ans
Serghei Mihai a écrit :
Il manque le
e
à la fin.
C'est plutôt une erreur sur https://particulier.api.gouv.fr/tech/ qui parle bien de https://particulier.api.gouv.fr/api/impots/adress . tu as testé ? (j'avoue, pas moi)
Mis à jour par Thomas Noël il y a environ 6 ans
Thomas Noël a écrit :
Serghei Mihai a écrit :
Il manque le
e
à la fin.C'est plutôt une erreur sur https://particulier.api.gouv.fr/tech/ qui parle bien de https://particulier.api.gouv.fr/api/impots/adress . tu as testé ? (j'avoue, pas moi)
https://particulier-sandbox.api.gouv.fr/api/impots/adresse = 404 alors que
https://particulier-sandbox.api.gouv.fr/api/impots/adress = ip refusée
donc y'a juste une typo dans leur URL mais pas dans le code de Benjamin
Mis à jour par Serghei Mihai il y a environ 6 ans
Pas testé non plus, mais vu dans les tests un appel à impots/adresse
.
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Serghei Mihai a écrit :
Pas testé non plus, mais vu dans les tests un appel à
impots/adresse
.
Bah oui j'ai pas repris la typo dans nos URLs.
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Le commit de diff, je poste le rebasage ensuite.
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Mis à jour par Thomas Noël il y a environ 6 ans
Ton dernier patch ne doit pas être le bon (restent des "resource") ; mais en y mergeant le diff présenté au dessus ça me semble mériter un ack.
Mis à jour par Serghei Mihai il y a environ 6 ans
s/ressource/resource/ dans tests/utils.py:endpoint_get
et ack
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
- Fichier 0001-add-connector-for-API-Particulier-14838.patch 0001-add-connector-for-API-Particulier-14838.patch ajouté
voilà.
Mis à jour par Frédéric Péters il y a environ 6 ans
- Statut changé de En cours à Fermé
Conciergerie.
commit f24bb06e6e2f04149b2f2e521707e562972b2cc8 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Fri Mar 24 16:28:39 2017 +0100 add connector for API-Particulier (#14838) API Particulier is an API published by the french government for accessing fiscal and social informations about citizens. It can be used to improve efficiency of procedures in local administrations.
add connector for API-Particulier (#14838)
API Particulier is an API published by the french government for accessing
fiscal and social informations about citizens. It can be used to improve
efficiency of procedures in local administrations.