Giter Site home page Giter Site logo

betagouv / api.gouv.fr Goto Github PK

View Code? Open in Web Editor NEW
318.0 20.0 161.0 58.25 MB

Liste les API disponibles au sein de l'administration française

Home Page: https://api.gouv.fr

License: GNU Affero General Public License v3.0

JavaScript 7.03% TypeScript 31.26% SCSS 2.19% CSS 59.52% Shell 0.01%
api government platform

api.gouv.fr's Introduction

api.gouv.fr

Build, lint & tests Accessibilité Liens morts

api.gouv.fr catalogue les API produites par les administrations centrales, les collectivités territoriales, les établissements publics… Chaque API est associée à une courte description fonctionnelle, une documentation technique, les modalités d'accès, d'éventuelles ressources supplémentaires et surtout des liens vers les services qui l'utilisent.

Derniers déploiements

Deploy - Staging

Deploy - Production

Public visé

api.gouv.fr s'adresse avant tout aux créateurs de services, les consommateurs d'API. Pour cela, nous facilitons la découverte, la compréhension et l'accès aux API et à leurs producteurs.

Les fournisseurs, de leur côté, ont avec ce catalogue un moyen simple de faire connaître leurs API.

Fournisseur d'API ? Envie de référencer une nouvelle API ?

1- Contacter le service

Veuillez prendre attache avec l'équipe en complétant le formulaire suivant : 👉 Ajoutez votre API !

2- Créer la page de son API (exemple)

Pour ajouter votre API ou commenter un fichier dans ce dépôt, vous devez au préalable avoir un compte Github.

Créer la page à partir des templates disponibles

  1. Se rendre dans le dossier _data/api.
  2. Créer le fichier de votre API api-nom-de-la-nouvelle-api.md.
  3. Utiliser les templates à disposition, commentés avec une explication pour chacun des champs. Les champs indispensables sont indiqués par l'icône épingle (📍) dans le commentaire.

Pour plus de facililité, copier/coller tout le contenu du template dans votre fichier. Dans le cas où vous n'avez pas toutes les informations permettant de compléter les champs, vous pouvez supprimer le champ ou le commenter en ajoutant un # en début de ligne.

Champ producer

Pour que votre fiche API fonctionne, il est impératif qu'elle soit rattachée au nom d'un fournisseur référencé dans le dossier api_gouv/_data/producteurs. 🔎 Ajouter un fournisseur de données

Champ doc_tech_link ou comment référencer son swagger

Pour ajouter votre swagger dans API.gouv, il vous faut mettre le lien URL vers le fichier openAPI.

  • Si vous avez une URL publique permettant d'accéder au fichier OpenAPI, c'est ce lien que vous devez indiquer.
  • Si votre swagger n'est pas disponible par une URL publique, nous pouvons héberger votre swagger pour le rendre disponible. Veuillez nous contacter.

Pour ajouter un lien vers la documentation technique, veuillez utiliser le champ doc_tech_external:.

account_link: et datapass_link:quelle différence ?

Votre API est en accès restreint ? Deux champs sont à disposition pour renvoyer les usagers vers la demande d'habilitation :

  • account_link: vous permet d'ajouter l'URL de votre page de connexion (si il s'agit d'une demande de création de compte) ou de votre procédure d'habilitation.
  • datapass_link: permet d'ajouter le lien vers le formulaire d'habilitation DataPass, produit opéré par la DINUM et permettant l'instruction de demandes d'accès à des données.

Entonoir d'éligibilité avec access_page:

Si votre API est uniquement accessible à un type de public, le champ access_page vous permet de créer un composant entonnoir pour vérifier si l'usager est éligible. Vous pouvez voir un exemple de ce parcours ici. Ce parcours est accessible après avoir cliqué sur le bouton "Faire une demande d'habilitation" sur la page de l'API.

Forme standard du champ :
access_page:
  - who: # Chaque "who" crée un bouton de premier niveau. Limitez-en le nombre pour que l'usager s'y retrouve.
      - Un particulier ou une entreprise # Label du bouton
    is_eligible: -1 # -1 signifie que ce public n'est pas elligible, la mention "Désolé, vous n’êtes pas éligible 🚫" sera affichée quand l'usager clique sur le bouton.
    description: |
      Seules les administrations sont habilitées à utiliser l'API XX.

      <Button href="/rechercher-api">Rechercher une autre API</Button>
    # Cette description vient compléter la mention indiquée par le champ is_eligible.
  - who:
      - Une collectivité ou une administration
    is_eligible: 1 # 1 signifie que ce public est éligible, la mention "Vous êtes éligible 👌" sera affichée quand l'usager clique sur le bouton.
    description: |
      Conformément aux dispositions XXXX, seul le public XXX est habilité à pouvoir utiliser cette API.
      Pour obtenir un agrément, vous devrez **justifier de XXXX**, et vous engager à XXXX.

      Vous aurez besoin des informations suivantes pour compléter votre demande d'habilitation : 
      - Info 1
      - Info 2
      - Document 1

      <Button href="https://datapass.api.gouv.fr/api">Remplir une demande</Button>
  - who:
      - Un éditeur de logiciel
    is_eligible: -1
    description: |
      Si vous êtes **éditeur de logiciels, c'est à votre collectivité ou administration de faire sa demande d'habilitation.**

      <Button href="/rechercher-api">Rechercher une autre API</Button>
Options du champ description: | :

Vous pouvez ajouter tout le contenu markdown que vous souhaitez dans le champ description: |. Biensûr, rester le plus concis possible est préférable pour que l'usager se repère. Voici quelques options que vous pouvez utiliser facilement :

Option 1 : Ajouter un bouton pour proposer de chercher une nouvelle API, en écrivant : <Button href="/rechercher-api">Rechercher une autre API</Button>

Option 2 : Spécialement pour les API utilisant Datapass comme formulaire d'habilitation, vous pouvez utiliser le composant <NextSteps /> pour ajouter un paragraphe décrivant la liste des documents et informations qui seront demandés. Il vous suffit de l'ajouter sur une ligne seule à l'intérieur du champ description: |, un exemple est visible dans la forme standard du composant ci-dessus.

Que va ajouter ce composant ? Ajouter ce composant, revient à ajouter le code suivant : ```

Pour remplir votre demande, vous aurez besoin :

  • de votre numéro SIRET
  • du cadre juridique
  • {service_description}
  • des coordonnées de l'équipe
  • des coordonnées de votre délégué à la protection des données et responsable de traitement {is_editeur && de l’entité pour laquelle vous opérez}
```

Autres options : Vous voulez aller plus loin ? Créer plus de niveaux d'information ? Les API Particulier et API Entreprise sont un bon exemple dont vous pouvez vous inspirer.

Leur composant entonnoir, également configuré à la base dans le fichier principal, appelle d'autres composants disponibles dans le dossier api_gouv/components/questionTree.

3- Créer/modifier sa fiche fournisseur de données

Si vous êtes un nouveau fournisseur de données, vous avez besoin de référencer votre organisation dans API.gouv :

  • Créer la fiche fournisseur fournisseur.md, en l'ajoutant dans le dossier api_gouv/_data/producteurs
  • Dans ce fichier, copier/coller le template template.fournisseur.md.example ou ajouter au minimum :
---
name: Nom complet du fournisseur
acronym: Nom court qui sera affiché en principal
type: Association | Entreprise privée 
logo: fichier.png
---
  • Ajouter le logo au format .png dans le dossier api_gouv/public/images/api-logo. Nommer le logo sous le même nom qu'utilisé dans le fichier fournisseur.md au niveau du champ logo:.

Comment ça marche ?

Prérequis

Node.js >= 16

Serveur de développement

tl;dr: ./bin/install.sh

Cette application utilise Next.js.

  1. Installer les dépendances
npm i
  1. Variables d’environnement

Afin de configurer le projet correctement, il est conseillé de créer un fichier .env avec les variables d’environnement nécessaires à l’application.

.env permet de persister les variables d’environnement de développement dans un fichier plutôt que de les définir dans le shell, mais les deux fonctionnent. Cela fonctionne avec dotenv et next-runtime-dotenv.

Copier le fichier de configuration

cp .env.sample .env
  1. Lancer le serveur de développement
./bin/local_dev.sh

Puis visitez http://localhost:3000/

Par défaut, il écoutera sur le port 3000, pour changer, utiliser npm run dev -p 4242.

Build de production

Cette application utilise Next.js.

  1. Installer les dépendances
npm i
  1. Générer les bundles de production
npm run build
  1. Lancer le serveur de production
PORT=3000 npm run start

Tests

  1. Linter
npm run lint
  1. Tests unitaires
npm run test
  1. Autres tests
// a11y
npm run check-accessibility

//404
npm run check-broken-links

// no link to datapass staging
npm run check-no-datapass-staging

Miniatures

Avant chaque commit est lancé un script qui redimmensionne et compresse les images des pages de guides :

// a11y
npm run create-thumbnail

Preview apps

Chaque pull request est déployé dans des review app sur Heroku

Deploiement

Le déploiement se fait par Github action

A chaque "merge" sur master :

NB: Si plusieurs déploiements sont déclenchés en même temps, seul le premier va jusqu'au bout. Les autres sont automatiquement interrompus.

api.gouv.fr's People

Contributors

antoineaugusti avatar arslanegharout avatar bernardstanislas avatar dependabot[bot] avatar dorinelam avatar emploistoredeveloppeur avatar etienne0101 avatar fionnh avatar flightan avatar gilmpeio avatar isalafont avatar jdesboeufs avatar l-vincent-l avatar laem avatar maelreboux avatar mattisg avatar mazalaigue avatar miryad3108 avatar morendil avatar nico-cisirh avatar patama avatar rdubigny avatar samuelfaure avatar schweisguthn avatar skelz0r avatar teleboas avatar thibautgery avatar tvilmus avatar vgrss avatar xavierjp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

api.gouv.fr's Issues

Bundle is not consistent

$ bundle install
[…]
Bundle complete! 4 Gemfile dependencies, 63 gems now installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.
$ bundle exec jekyll serve
Could not find rake-11.2.2 in any of the sources
Run `bundle install` to install missing gems.

Déplacer le lien "Explorer les X API ..."

Remonter le lien actuellement tout en bas de la page,
Au choix : juste en dessous du champ de recherche, ou entre les 4 catégories d'API et les réutilisations mises en valeur

Mieux gérer les images

  • avoir la possibilité de linker des images extérieures
  • harmoniser la gestion des images entre les services et les API

Réutilisations

Le terme réutilisation n'est pas clair, il faut le modifier et/ou ajouter une description de ce que c'est.

C'est remonté des tests utilisateurs fait le 03/05.
Croyance sur le sujet :

  • Outil pour expliquer les API
  • tutoriel pour les API
  • API mais avec des données bidons

ping @ppezziardi @patama

Evolutions sur la partie 'ils l'utilisent déjà"

  • Faire comme data.gouv : un catalogue de dataset (ici les API) et un catalogue de reutilisation (ici les 'Services')
  • proposer à des éditeurs ou producteurs de services pour une mise en valeur de leur produit : ne mettre en 1st page que quelques réutilisations et un lien "explorer les X réutilisations" en dessous
  • proposition d’ajouter la même chose pour les API : mise en valeur de quelques API (les plus utiles ou plus utilisés ou les plus récentes)
  • dans la liste des reuses, proposition de faire apparaitre les services au fur et a mesure du scroll (comme des produits sur amazon)

Update le.taxi API

TODO

  • Mettre à jour la description
  • Faire remonter l'utilisation de l'API
  • Utiliser le logo carré

Bug d'alignement

Avec la dernière version de Firefox, les cartes des services ne sont pas alignées
screenshot from 2016-06-20 22 32 03

Retour Utilisateurs sur la partie "c'est quoi api.gouv.fr"

Quelques retours en vrac sur cette partie, actuellement supprimée.

Proposition de plan :

  1. La promesse : simplifier, éviter les doubles saisies, et ne pas donner de justificatifs
  2. Le public cible du site : avant tout les utilisateurs d'API, pas que profil dev. (comment je consomme) mais aussi juriste (j'ai le droit d'utiliser ?)
  3. les possibilités offertes : accéder à telle ou telle donnée avant utiliser tel ou tel service

Simplifier jugé plus important que authentifier ou géocoder,
Authentifier était jugé trop technique,

Ajouter un menu

Il est difficile de naviguer dans le site (particulièrement dans les pages, apropos, qu'est qu'une API).
Je propose d'ajouter un menu avec les 4 catégories.

La recherche n'est pas pertinente

remonté des tests utilisateurs du 03/05

Pour reproduire :
Rechercher quotient familiale remonte le.taxi
Rechercher entreprise ne remonte pas API Entreprise

Ajouter une procédure de demande d'API par les consommateurs potentiels

Sauf erreur de ma part, pour l'instant il est possible pour une administration d'ajouter une API existante, mais il n'y a pas de guidelines pour solliciter la mise à dispo d'une API pour quelqu'un qui n'aurait pas trouvé son bonheur dans la liste.

Use case:

  • Je découvre le site api.gouv.fr en cherchant une API spécifique pour enrichir mon service
  • Je consulte la liste des API déjà dispo
  • Il n'y a pas ce qu'il me faut
  • Au lieu de fermer l'onglet et d'oublier api.gouv.fr pour un moment, je peux exprimer mon besoin (par exemple en créant une issue GitHub avec un template défini )
  • l'équipe d'api.gouv.fr peut évaluer/transmettre la demande et ainsi identifier des nouveaux gisements de valeur
  • d'autres consommateurs potentiels de l'API peuvent trouver le ticket et confirmer la demande par un commentaire ou par un subscribe ou avoir l'explication du pourquoi c'est pas encore dispo ou pourquoi ça ne le sera pas...

Déplacer l'indicateur « featured »

Pour que les zones de responsabilité soient claires, un service ne devrait pas pouvoir spécifier s'il est featured. Il s'agit d'un choix éditorial qui devrait être indépendant du service lui-même.

Dans beta.gouv.fr, par exemple, c'est la page d'index qui spécifie les startups qui sont mises en avant, exactement pour cette raison.

Contact

Problème : les usager contacte le site et non les producteur d'API

Solution : mettre en évidance un moyen de contact par API

Fournir un planning de lancement d'API

Des retours utilisateurs nous demande quelle est le planning de lancement des différentes API.

Il faut plus insister sur le caractère disponibles des API

GitHub Pages version is illegal

According to the README:

gem install github-pages -v 2.4.8

But:

$ gem install --user github-pages -v 2.4.8
ERROR:  Could not find a valid gem 'github-pages' (= 2.4.8) in any repository

Evolutions sur la partie détail d'une API

Remontées utilisateurs sur les pages de détail de l'ancienne version :

  • Mettre plus d'informations dans le détail
  • Mettre systématiquement un lien vers la documentation de l'API
  • disponible sous contrat : le contrat est ou ?, que puis je faire/pas faire avec l'API
  • ajouter 'cette API est utilisée par XXX'
  • ajouter 'pour utiliser cette api, contactez xxx'
  • ajouter un bouton 'prévenez moi si les conditions d'utilisation changent'. Ainsi, si cette api devient disponible pour plus de monde, le prospect est averti.
  • Est ce que seuls les appels temps réel sont disponibles ? puis je utiliser en batch/lot ?
  • quelles sont les étapes pour l'utiliser ?
  • il y a deux types d'api : celles qui ont une documentation qqpart et les autres,
    • pour celles avec de la doc : proposer un guide avec les sujets à couvrir
    • pour celles sans doc proposer un template
      Objectif : aider les fournisseurs à donner les informations minimums nécessaire au futur consommateur pour savoir si il peut faire affaire.
  • Ajoutez un bouton 'on vous contacte' avec formulaire nom/mail
  • Mettre un lien vers une API mock ou demo
  • Mettre un lien vers le swagger de l'API
  • Augmenter la disticntion entre l'API et ses réutilisations
  • Mettre un rappel de la catégorie de l'API (code couleur par ex)

Affichage d'une Réutilisation

Les utilisateurs cliquent sur le label de l'API et non sur le nom ou l'image de la réutilisation

Proposition : mettre le titre au dessus de l'image

Modifier la description sous 'données de référence'

Toujours retours des tests utilisateurs

  • la notion de donnée de référence tabulaire n'est pas comprise
  • plus que l’accès à la donnée de référence, le besoin est la circulation de cette donnée : éviter la saisie en pré remplissant le champ à mettre en avant plutot que l'auto complétion

Définir une API

  • utiliser le thread Octo
  • Utiliser une métaphore : prise électrique

Améliorer l'accessibilité du site

Retour par mail :

  • Il faudrait ajouter l’attribut lang=’fr’ sur l’élément html (sinon la vocalisation des pages avec les lecteurs d’écran se fait avec la voix anglaise)
  • Le champ de recherche n’a pas de label, ni de bouton de validation

Il y a d’autres points d’amélioration pour que le site réponde aux exigences d’accessibilité, je pourrais renvoyer au RGAA, mais ce n’est pas le document le plus pédagogique pour entrer dans le sujet.

Je recommanderais plutôt les notices accede-web bien plus facile à lire. Par exemple Html Css Javascript/ :

C’est très bien fait, on trouve de nombreux exemples de code et explications et c’est en français.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.