7 heures, 38 minutes ago

Développeur API

Contexte

Les données nous sont actuellement fournies via l'API d'un outil tiers, dont l'avenir est incertain. Nous souhaitons réimplémenter un sous-ensemble de cette API (ou une API très similaire) afin que les utilisateurs actuels puissent effectuer la transition avec un minimum de friction. L’API n’est pas très complexe et une certaine documentation est disponible.

L’API comporte deux parties fonctionnelles :

  • Couche de métadonnées : expose des métadonnées à l’appelant (par exemple, structures de collecte de données).

  • Couche de soumission : permet de soumettre des données pour une collecte de données donnée et valide la soumission.

La nouvelle implémentation est basée sur la base de données du projet ODS, qui joue deux rôles :

  • Source des métadonnées : les métadonnées servies par la couche de métadonnées sont déjà disponibles dans la base de données ODS.

  • Destination des soumissions : les données soumises sont consommées par le code de chargement Python existant du projet ODS.

La sécurité est une préoccupation de conception dès le départ. Le modèle de sécurité (authentification, autorisation, transport et protection des données) peut différer de l’API actuelle et doit être défini.

Mission

Implémenter les parties critiques de l’API (périmètre à convenir au départ) afin de démontrer qu’un remplacement compatible est réalisable. Le travail est livré avec un code de qualité production, des tests et une documentation pour ce qui est couvert. Le livrable inclut un résumé concis de ce qui a été couvert, de ce qui reste à faire et de ce qui est nécessaire pour atteindre la production.

Tâches

  • Analyser l’API existante et sa documentation, et convenir du sous-ensemble à couvrir

  • Analyser la base de données ODS et mapper ses métadonnées à ce que l’API existante expose, en identifiant les éventuels manques

  • Proposer et implémenter une approche de sécurité (authentification, autorisation, gestion sécurisée des données soumises), en mettant en avant les différences avec l’API actuelle

  • Implémenter les endpoints des métadonnées par-dessus la base de données ODS

  • Implémenter les endpoints de soumission, avec validation des données soumises et des réponses d’erreur explicites

  • Remettre les données soumises au code de chargement ODS (ou les stocker sous la forme attendue par ce code)

  • Écrire des tests automatisés et une documentation technique concise

  • Déployer et démontrer la solution sous Ubuntu Linux

  • Rendre compte des limitations, questions ouvertes et prochaines étapes recommandées

Compétences requises

  • Python 3.12+ avec FastAPI

  • SQLAlchemy et PostgreSQL (lecture et mapping d’un schéma existant)

  • Conception d’API REST

  • Sécurité des API : authentification et autorisation (par ex. OAuth2/OIDC, JWT, API keys), TLS, validation des entrées

  • Tests automatisés (pytest)

Atouts

  • Polars en combinaison avec SQLAlchemy

  • uv pour la gestion des packages

  • Expérience des projets de compatibilité ou de migration d’API

  • Expérience dans la gestion de données sensibles (par ex. données de santé) et les exigences RGPD

  • Expérience du déploiement Linux

Compétences relationnelles

  • Autonomie et capacité à travailler à partir d’une documentation incomplète

  • Pragmatisme : se concentrer d’abord sur les parties critiques tout en maintenant un haut niveau de qualité sur ce qui est livré

  • Communication claire des résultats et des limitations

Apply for this Job

This position was originally posted on Pro Unity.

It is publicly accessible, and we recommend applying directly through the Pro Unity website instead of going through third party recruiters.

Newsletter signup illustration