Documentation - Utiliser API Particulier (feature flag, copies d'écran utilisation et Delayed_Job pour appel asynchrone à l'API)
Ressources
- https://api.gouv.fr/documentation/api-particulier
- https://particulier.api.gouv.fr/developpeurs
- jeton du staging API Particulier : https://github.com/etalab/siade_staging_data/tree/develop/tokens
- data du staging API Particulier : https://github.com/etalab/siade_staging_data/
Configuration d'API Particulier ---> déjà gérer dans le Vagrant via Puppet
La configuration suivante est valable uniquement que pour le serveur de RECETTE ou en local.
API_PARTICULIER_URL
Ajouter la variable d'environnement optionnelle Ajouter la variable d'environnement optionnelle API_PARTICULIER_URL
avec l'URL de staging d'API Particulier :
API_PARTICULIER_URL="https://staging.particulier.api.gouv.fr/api"
ENCRYPTION_SERVICE_SALT
Configurer la variable d'environnement Configurer la variable d'environnement ENCRYPTION_SERVICE_SALT
avec un secret
car c'est utilisé pour chiffrer les jetons d'API Particulier en bases de données :
# Encryption key for sensitive columns in the database
ENCRYPTION_SERVICE_SALT=""
Activer la Feature flag
http://localhost:3000/manager/features/features
Utiliser API Particulier
quelques exemples ici (attention les jetons et données sont certainement obsolètes) : demarches-simplifiees-documentation#25 (closed)
Créer une nouvelle démarche
- Créer une nouvelle démarche ---->
/admin/procedures/new
- Configurer le jeton API Particulier pour cette démarche
- Configurer les données d'API Particulier à persister en DB
- Ajouter au formulaire les champs spécifiques d'API Particulier (CAF, Pôle Emploi, ...)
- Déposer un dossier avec les données de tests du staging d'API Particulier
Jeton du staging API Particulier : https://github.com/etalab/siade_staging_data/tree/develop/tokens
eyJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiJlNDdkZWU2My1hZDExLTQxYjktOGEwOS1mYzQ5NTc2NjgyZTAiLCJqdGkiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY29wZXMiOlsidXB0aW1lIiwiYXNzb2NpYXRpb25zIiwiYXR0ZXN0YXRpb25zX2FnZWZpcGgiLCJwcm9idHAiLCJhdHRlc3RhdGlvbnNfZmlzY2FsZXMiLCJhdHRlc3RhdGlvbnNfc29jaWFsZXMiLCJiaWxhbnNfZW50cmVwcmlzZV9iZGYiLCJmbnRwX2NhcnRlX3BybyIsImNlcnRpZmljYXRfYWdlbmNlX2JpbyIsImNlcnRpZmljYXRfY25ldHAiLCJjZXJ0aWZpY2F0X29wcWliaSIsInF1YWxpYmF0IiwiY2VydGlmaWNhdF9yZ2VfYWRlbWUiLCJjb252ZW50aW9uc19jb2xsZWN0aXZlcyIsIm1zYV9jb3Rpc2F0aW9ucyIsImRvY3VtZW50c19hc3NvY2lhdGlvbiIsImFjdGVzX2lucGkiLCJiaWxhbnNfaW5waSIsImVudHJlcHJpc2VzX2FydGlzYW5hbGVzIiwiZW50cmVwcmlzZXMiLCJlb3JpX2RvdWFuZXMiLCJldGFibGlzc2VtZW50cyIsImV4ZXJjaWNlcyIsImV4dHJhaXRfY291cnRfaW5waSIsImV4dHJhaXRzX3JjcyIsImxpYXNzZV9maXNjYWxlIiwiYXNzb2NpYXRpb25zX2Rvbm5lZXNfcHJvdGVnZWVzIiwiY25hZl9xdW90aWVudF9mYW1pbGlhbCIsImNuYWZfYWxsb2NhdGFpcmVzIiwiY25hZl9lbmZhbnRzIiwiY25hZl9hZHJlc3NlIiwiY25vdXNfc3RhdHV0X2JvdXJzaWVyIiwiY25vdXNfZWNoZWxvbl9ib3Vyc2UiLCJjbm91c19lbWFpbCIsImNub3VzX3BlcmlvZGVfdmVyc2VtZW50IiwiY25vdXNfc3RhdHV0X2JvdXJzZSIsImNub3VzX3ZpbGxlX2V0dWRlcyIsImNub3VzX2lkZW50aXRlIiwiZGdmaXBfZGVjbGFyYW50MV9ub20iLCJkZ2ZpcF9kZWNsYXJhbnQxX25vbV9uYWlzc2FuY2UiLCJkZ2ZpcF9kZWNsYXJhbnQxX3ByZW5vbXMiLCJkZ2ZpcF9kZWNsYXJhbnQxX2RhdGVfbmFpc3NhbmNlIiwiZGdmaXBfZGVjbGFyYW50Ml9ub20iLCJkZ2ZpcF9kZWNsYXJhbnQyX25vbV9uYWlzc2FuY2UiLCJkZ2ZpcF9kZWNsYXJhbnQyX3ByZW5vbXMiLCJkZ2ZpcF9kZWNsYXJhbnQyX2RhdGVfbmFpc3NhbmNlIiwiZGdmaXBfZGF0ZV9yZWNvdXZyZW1lbnQiLCJkZ2ZpcF9kYXRlX2V0YWJsaXNzZW1lbnQiLCJkZ2ZpcF9hZHJlc3NlX2Zpc2NhbGVfdGF4YXRpb24iLCJkZ2ZpcF9hZHJlc3NlX2Zpc2NhbGVfYW5uZWUiLCJkZ2ZpcF9ub21icmVfcGFydHMiLCJkZ2ZpcF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlIiwiZGdmaXBfc2l0dWF0aW9uX2ZhbWlsaWFsZSIsImRnZmlwX3JldmVudV9icnV0X2dsb2JhbCIsImRnZmlwX3JldmVudV9pbXBvc2FibGUiLCJkZ2ZpcF9pbXBvdF9yZXZlbnVfbmV0X2F2YW50X2NvcnJlY3Rpb25zIiwiZGdmaXBfbW9udGFudF9pbXBvdCIsImRnZmlwX3JldmVudV9maXNjYWxfcmVmZXJlbmNlIiwiZGdmaXBfYW5uZWVfaW1wb3QiLCJkZ2ZpcF9hbm5lZV9yZXZlbnVzIiwiZGdmaXBfZXJyZXVyX2NvcnJlY3RpZiIsImRnZmlwX3NpdHVhdGlvbl9wYXJ0aWVsbGUiLCJtZXNyaV9pZGVudGlmaWFudCIsIm1lc3JpX2lkZW50aXRlIiwibWVzcmlfaW5zY3JpcHRpb25fZXR1ZGlhbnQiLCJtZXNyaV9pbnNjcmlwdGlvbl9hdXRyZSIsIm1lc3JpX2FkbWlzc2lvbiIsIm1lc3JpX2V0YWJsaXNzZW1lbnRzIiwicG9sZV9lbXBsb2lfaWRlbnRpdGUiLCJwb2xlX2VtcGxvaV9hZHJlc3NlIiwicG9sZV9lbXBsb2lfY29udGFjdCIsInBvbGVfZW1wbG9pX2luc2NyaXB0aW9uIiwibWVuX3N0YXR1dF9zY29sYXJpdGUiLCJtZW5fc3RhdHV0X2JvdXJzaWVyIiwibWVuX2VjaGVsb25fYm91cnNlIl0sInN1YiI6InN0YWdpbmcgZGV2ZWxvcG1lbnQiLCJpYXQiOjE2ODQ3NTgzMzAsInZlcnNpb24iOiIxLjAiLCJleHAiOjIwMDAzNzc1MzB9.j7p9913oijFiIIfAqXpDgtzWbZfQqR9VB4QKS1-2pUI
2. Configurer le jeton API Particulier pour cette démarche
3. Configurer les données d'API Particulier à persister en DB
4. Ajouter au formulaire les champs spécifiques d'API Particulier (CAF, Pôle Emploi, ...)
5. Déposer un dossier avec les données de tests du staging d'API Particulier
Données de staging d'API Particulier à utiliser :
- https://api.gouv.fr/documentation/api-particulier
- data du staging API Particulier : https://github.com/etalab/siade_staging_data/
Delayed_Job
Ressources :
2 service à lancer :
- server PUMA avec option variable d'environnement
RAILS_QUEUE_ADAPTER=delayed_job
- delayed_job via
bin/rails jobs:work
(cron jobs rails)
L'implémentation API Particulier est asynchrone,
donc si les delayed_job ne fonctionnent pas,
aucune données n'est récupérées.
Voir : #1062
vagrant ssh
cd src/
RAILS_QUEUE_ADAPTER=delayed_job bin/rails server --binding=0.0.0.0
vagrant ssh
cd src/
bin/rails jobs:work
(...)
[Worker(host:ds pid:925)] Job ChampFetchExternalDataJob [e07a0b88-8f46-4c56-a0cd-8ecc595fb126]
from DelayedJob(default) with arguments:
[{"_aj_globalid"=>"gid://tps/Champs::CnafChamp/10"},
"{\"code_postal\":\"33440\",\"numero_allocataire\":\"6999025\"}"]
(id=28) (queue=default) RUNNING
[Worker(host:ds pid:925)] Job ChampFetchExternalDataJob [e07a0b88-8f46-4c56-a0cd-8ecc595fb126]
from DelayedJob(default) with arguments:
[{"_aj_globalid"=>"gid://tps/Champs::CnafChamp/10"},
"{\"code_postal\":\"33440\",\"numero_allocataire\":\"6999025\"}"]
(id=28) (queue=default) COMPLETED after 1.9683
(...)
[Worker(host:ds pid:925)] Job ActionMailer::MailDeliveryJob [31f539ff-a2ea-4cf1-b2d4-6be1c449eee0] from DelayedJob(mailers) with arguments: ["DossierMailer", "notify_new_dossier_depose_to_instructeur", "deliver_now", {"args"=>[{"_aj_globalid"=>"gid://tps/Dossier/10"}, "test@exemple.fr"], "_aj_ruby2_keywords"=>["args"]}] (id=30) (queue=mailers) COMPLETED after 0.0896
[Worker(host:ds pid:925)] 3 jobs processed at 1.2587 j/s, 0 failed