Skip to content

Surcouche à l'API dans worker-ml

Pour éviter les erreurs fréquentes sur les appels à l'API et aider aux tests locaux, on pourrait créer des classes Element, Entity, Transcription, Classification, etc. qui reprennent les champs demandés par les APIs. Les workers renvoient alors des listes de ces classes, et le code de base s'occupe d'appeler les bonnes API.

On pourra ainsi implémenter de manière plus forte les restrictions en cours sur les résultats ML (slugs obligatoires, transcriptions uniquement pour des reconnaisseurs, etc.), toujours appeler les bons endpoints avec les bons paramètres, et ajouter un paramètre --dry-run sur l'exécution pour permettre d'afficher les résultats au lieu de les envoyer à une instance d'Arkindex.

Au lieu de renvoyer une liste d'objets à créer, on pourrait aussi créer des surcouches à l'API directement dans api-client, ce qui permettrait manuellement de faire Entity.create, Element(<id>).list_entities(), etc. et d'abstraire toute l'API. Cela retirerait cependant tout l'intérêt d'OpenAPI, dont le but est de ne pas avoir à définir des objets/méthodes manuellement pour chaque endpoint.


Imported from Trello - Created by @erwanrouchet