Upgrade to Pro — share decks privately, control downloads, hide ads and more …

La création d'API de données avec API Platform et datasette

La création d'API de données avec API Platform et datasette

Présentation faite par Gaëlle Marais à Etalab le 25 juillet 2019.

BlueHats

July 25, 2019
Tweet

More Decks by BlueHats

Other Decks in Technology

Transcript

  1. Pourquoi ? • Permettre aux administrations qui ouvrent des données

    de pouvoir créer des APIs afin que leurs données soient plus facilement réutilisables • Informer les organismes publiques sur le sujet des APIs et des outils d’APIsation • Créer des guides/tutoriels pour enseigner la création d’APIs via des outils spécifiques • Mettre en place des APIs expérimentales autour des données de data.gouv.fr pour montrer l’exemple Comment ?
  2. Symfony : Un framework d’application web • Génère un squelette

    de base qui permet de créer des applications web, de la plus basique à la plus complexe • Abstraction de la base de données, génération d’entités • Gestion de formulaires, d’utilisateurs, et bien plus … • codé en PHP Bonne connaissance de PHP nécessaire pour travailler avec Symfony.
  3. API Platform peut être vu comme un bundle de Symfony

    On construit d’abord un projet Symfony basique, avec une base de données. Puis on ajoute par dessus le bundle permettant de générer une API. La construction de l’API se fait en à peine quelques minutes.
  4. Un outil puissant et de nombreuses fonctionnalités • Opérations pré-construites

    sur les entités : récupérer, ajouter, modifier, supprimer. On peut très facilement construire de nouvelles opérations. • Contrôle des attributs • Génération de filtre de recherche • Personnalisation des formats de données • Interface utilisateur propre et jolie • Couche d’administration d’API + couche d’authentification • GraphQL Tutoriel : https://github.com/GaelleMarais/tuto-fr-apiplatform Mais finalement, beaucoup de fonctionnalités qui ne seront pas utilisées dans le cadre d’une API de consultation de données.
  5. Les limites d’API Platform dans le contexte d’Etalab • Conçu

    pour être utilisé dès le début d’un projet, moins optimisé pour des grosses données déjà existantes. • Beaucoup de fonctionnalités, mais aussi beaucoup de moyens de se perdre dans tout ce qu’API Platform propose. C’est un outil un peu “lourd” pour de la simple consultation de données. • Nécessite une bonne connaissance de Symfony et de PHP en général. • Il faut générer les entités selon les données, qui ne sont pas les mêmes d’un projet à l’autre. • Pour charger des données depuis un .csv il faut écrire des scripts PHP.
  6. Présentation de Datasette • Un outil pour publier des données

    de toutes tailles sous forme d’API • Permet de générer automatiquement une API à partir d’un ou plusieurs fichiers .csv (nom des entités = nom du fichier, noms des attributs = noms des colonnes du fichier) • Spécialement conçu pour consulter des données sans possibilité de les modifier ou de les supprimer • Propose à l’utilisateur des filtres de recherche et/ou des requêtes SQL. • Très rapide à utiliser une fois que les composants sont installés • Codé en Python, mais aucune connaissance de Python nécessaire pour installer Tutoriel à venir: https://github.com/GaelleMarais/tuto-fr-datasette
  7. Les points faibles de Datasette • Un outil beaucoup plus

    limité, on ne peut pas tellement personnaliser son API. • Permet uniquement de consulter des données (pas de modification, ajout ou suppression) • Pas de GraphQL