Skip to content

API de recherche et de consultation de la plateforme JUDILIBRE.

Notifications You must be signed in to change notification settings

Cour-de-cassation/judilibre-search

Folders and files

NameName
Last commit message
Last commit date

Latest commit

70d8bb0 Â· Mar 3, 2025
Feb 10, 2025
Jan 31, 2025
Mar 3, 2025
Dec 6, 2023
Mar 3, 2025
Jan 16, 2025
May 21, 2021
Jan 14, 2022
Nov 13, 2021
May 20, 2021
Oct 2, 2024
Feb 5, 2025
Jan 31, 2025
Jun 21, 2021
Jan 13, 2025
Jan 13, 2025
Dec 5, 2021

Repository files navigation

L'API Judilibre

La documentation présente est disponibles sur le Github du code source de l'API Judilibre

L'API Judilibre assure la publication des décisions rendues publiquement par la Cour de cassation, enrichies et pseudonymisées.

Au fur et Ă  mesure du calendrier Ă©tabli par l’arrĂȘtĂ© du 28 avril 2021 s’ajouteront les dĂ©cisions rendues par d’autres juridictions de l’ordre judiciaire, telles les dĂ©cisions civiles, sociales et commerciales des cours d’appel (mars 2022).

L’API Judilibre, mise Ă  disposition via le portail PISTE et accessible gratuitement aprĂšs inscription, permet notamment de rechercher en plein texte ou suivant des critĂšres spĂ©cifiques parmi l’ensemble de ces dĂ©cisions.

Les données disponibles via l'API sont celles de la version du site de la Cour de cassation (https://courdecassation.fr/recherche-judilibre).

Cette version de l'API est une version bĂȘta. Elle permet de recueillir vos remarques et vos suggestions d’amĂ©lioration. Elle est donc suceptible d'Ă©voluer les prochains mois.

Conditions d'utilisation

L'utilisation de ces données est soumise :

Premiers pas sur Piste et sur l'API

L'accĂšs piste : 4 Ă©tapes

  • CrĂ©ez votre compte, activez le compte (lien mail) et connectez-vous
  • Validez les CGU - en cherchant "Judilibre" a minima pour l'environnement sandbox et/ou celui de production
  • Raccorder votre Sandbox
    • cliquez sur votre Application Sandbox (nommĂ©e gĂ©nĂ©ralement "APPSANDBOX %VOTRE_EMAIL%")
    • cliquez sur "Modifier l'application"
    • et en bas, dans la liste des APIs, cochez l'API Judilibre (Sandbox)
    • cliquez sur "Appliquer les modifications"

API Endpoints

La documentation technique sur chaque méthode de l'API est disponible sur le portail api.gouv.fr (OpenAPI 3.0.2) PISTE (Swagger) ou sur le Github.

Les endpoints racine sont disponibles pour deux environnement (nécessitent donc l'enrÎlement préalable et l'obtention d'un KeyId) :

Note : ces URLs ne sont pas directement accessibles via une navigation classique et nĂ©cessitent a minima la spĂ©cification de votre KeyId dans l'en-tĂȘte des requĂȘtes (voir ci-aprĂšs).

Tester l'API

Pour les plus rapides, vous avez identifiĂ© que votre KeyId dans votre APP_SANDBOX, vous pouvez forger vous-mĂȘme vos requĂȘtes :

curl -is -H "accept: application/json" -H "KeyId: %keyId%" -X GET "https://sandbox-api.piste.gouv.fr/cassation/judilibre/v1.0/search?query=brevet"

{"page":0,"page_size":10,"query":{"query":"brevet","field":[],"type":[],"theme":[],"chamber":[],"formation":[],"jurisdiction":[],"publication":[],"solution":[]},"total":2025,"previous_page":null,"next_page":"query=brevet&field=&type=&theme=&chamber=&formation=&jurisdiction=&publication=&solution=&page=1","took":25,"max_score":2934.1016,"results":[{"score":1,"highlights":{"text":["européen et d'un <em>brevet</em> français se résout par la substitution du <em>brevet</em>...}

Ou par navigation :

  • AccĂ©der Ă  l'API
    • chercher "Judilibre"
    • cliquez sur "Tester l'API"
    • choisissez dans "Select credentials" la premier clĂ© de votre application Sandbox (APP_SANDBOX...)
  • Tester alors le point d'API /search
    • cliquez sur /search
    • cliquez sur "Try it out"
    • saisissez votre recherche (e.g "brevet" pour cherchez les juridsprudences sur les brevets
    • cliquez sur "Execute"

Vous verrez apparaßtre le JSON de réponse dans l'encadré juste aprÚs.

Exploitation du zonage

Le zonage désigne les informations permettant de découper le texte des décisions en sections identifiées (cf. /taxonomy?id=field) :

  • introduction: Introduction
  • expose: ExposĂ© du litige
  • moyens: Moyens
  • motivations: Motivations
  • dispositif: Dispositif
  • annexes: Moyens annexĂ©s

Le zonage est défini par un objet zones disponible dans le retour des API /decision et /export et qui se présente comme suit :

{
  "zones": {
    "introduction": [
      {
        "start": 0,
        "end": 1649
      }
    ],
    "expose": [
      {
        "start": 1649,
        "end": 2204
      }
    ],
    "moyens": [
      {
        "start": 2204,
        "end": 4753
      }
    ],
    "motivations": [
      {
        "start": 4753,
        "end": 7543
      }
    ],
    "dispositif": [
      {
        "start": 7543,
        "end": 7924
      }
    ],
    "annexes": [
      {
        "start": 7924,
        "end": 45372
      }
    ]
  }
}

Chaque zone contient une liste de fragments, dont les items start et end contiennent respectivement l'indice de début (inclus) et de fin (exclu) du fragment correspondant dans le texte intégral (propriété text).

Attention : chaque zone peut contenir plusieurs fragments et ceux-ci ne sont pas forcément séquentiels ! Autrement dit : il peut y avoir dans la zone moyens des fragments qui se situent, dans le texte, aprÚs certains fragments définis dans la zone motivations !

Afin de faciliter le traitement et l'affichage des zones cÎté front, il est recommandé de procéder à leur linéarisation préalable, comme suit (exemple en javascript) :

const text = result.text;
const zones = result.zones;

const orderedZones = [];
for (let zone in zones) {
  zones[zone].forEach((fragment) => {
    orderedZones.push({
      zone: zone,
      start: fragment.start,
      end: fragment.end,
    });
  });
}
orderedZones.sort((a, b) => {
  if (a.start < b.start) {
    return -1;
  }
  if (a.start > b.start) {
    return 1;
  }
  return 0;
});

// La liste orderedZones contient désormais les zones ordonnées séquentiellement :
orderedZones.forEach((zone) => {
  const textFragment = text.substring(zone.start, zone.end);
  console.log(`Zone: ${zone.zone}`);
  console.log(`Fragment: ${textFragment}`);
});

Exploitation de l'historique de transaction

Le endpoint /transactionalhistory fourni un moyen de suivre les actions d'écritures effectuées sur la base de donnée des décisions (création de décision, mise à jour ou suppression). Ce transaction log doit permettre aux utilisateurs qui souhaitent maintenir leur propre base de donnée de se synchroniser plus facilement avec l'état courant.

Vous pouvez consulter ici des exemples d'utilisations: /documentation/transactionalhistory.

Tests de l'API via Docker

docker run --env WITHOUT_ELASTIC=true -p 80:8080/tcp opendatajustice/judilibre-search:master

Des données statiques, destinées aux tests fonctionnels de base, sont inclues :

  • Un ensemble reprĂ©sentatif de rĂ©sultats paginĂ©s en retour du point d'entrĂ©e /search (ne contient que des fragments de dĂ©cisions) ;
  • Une dĂ©cision dĂ©taillĂ©e (d'autres seront ajoutĂ©es plus tard) en retour du point d'entrĂ©e /decision ;
  • Les termes auxquels correspondent certaines mĂ©tadonnĂ©es en retour du point d'entrĂ©e /taxonomy (en cours de complĂ©tion).

About

API de recherche et de consultation de la plateforme JUDILIBRE.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages