ecolabdata / ecospheres

Portail des données de la transition écologique et de la cohésion des territoires
https://ecologie.data.gouv.fr
2 stars 0 forks source link

Utiliser une liste dynamique des organisations de l'univers #493

Open abulte opened 3 days ago

abulte commented 3 days ago

La liste des organisations de l'univers est aujourd'hui dupliquée entre ecospheres-universe et udata-front-kit.

La mise à jour de la liste côté universe implique un redéploiement du front kit.

Il est souhaitable d'exposer côte universe une mini API qui pourra être utilisée dynamiquement par le front kit. Universe est la source de vérité puisque c'est là qu'on alimente le Topic univers qui est utilisé sur le front.

Cette évolution pourra également permettre d'enrichir le référentiel des organisations côté univers (is_ddt...) et l'exploiter côté front kit.

NB : cette évolution pourrait être rendue obsolète par la capacité de requêter via l'API data.gouv.fr les organisations référencées dans un Topic (pas possible et pas prévu à ce jour) NB 2 : on pourrait également migrer la liste de référence vers un Grist et utiliser son API dans universe et front kit (voir dispo).

streino commented 3 days ago

https://support.getgrist.com/api/#tag/records pourrait faire l'affaire

abulte commented 3 days ago

Related #494

streino commented 3 days ago

mini POC : https://grist.numerique.gouv.fr/o/ecospheres/api/docs/k3YQHL3Bmrhmpk8frjznZL/tables/Universe/records?filter={"env":["prod"],"type":["DR"]}

abulte commented 3 days ago

@streino Nice ! Plus qu'à faire un cron qui raise_for_status() toutes les 5 minutes pour valider la dispo :p

streino commented 3 days ago

L'API est assez limitée mais on peut aussi passer par du SQL(lite) :

POST https://grist.numerique.gouv.fr/o/ecospheres/api/docs/k3YQHL3Bmrhmpk8frjznZL/sql
Authorization: Bearer XXX

{
  "sql": "select distinct type from Universe"
}
{
  "statement": "select distinct type from Universe",
  "records": [
    {
      "fields": {
        "type": ""
      }
    },
    {
      "fields": {
        "type": "DR"
      }
    },
    {
      "fields": {
        "type": "DD"
      }
    },
    {
      "fields": {
        "type": "OP"
      }
    },
    {
      "fields": {
        "type": "AC"
      }
    }
  ]
}