Version de développement
Cette documentation décrit la version « next » (develop), non encore publiée. Pour la version stable, basculez sur « v5 » dans l'en-tête.
Interface

Utilisation de l'API Discovery

Découvrez comment utiliser l'API Discovery pour accéder aux métadonnées et au code source des documents dans Dokos.

API Discovery

L'API Discovery de Dokos permet d'accéder aux métadonnées des documents, y compris leur structure et leur code source. Cette fonctionnalité est particulièrement utile pour les développeurs qui souhaitent inspecter ou analyser dynamiquement les documents configurés dans le système.

Activation de l'accès au code source

Par défaut, l'accès au code source via l'API Discovery est désactivé pour des raisons de sécurité et de confidentialité. Pour l'activer, vous devez configurer un flag de fonctionnalité dans votre fichier hooks.py :

# hooks.py
feature_flags = {
    "expose_document_source": True
}

Une fois activé, le code source des documents sera inclus dans les réponses de l'API Discovery.

Accéder aux métadonnées et au code source

Endpoint

Utilisez l'endpoint suivant pour accéder aux métadonnées d'un document spécifique :

GET /api/method/frappe.api.discovery.get/{doctype}/{docname}

Exemple de requête

curl -X GET "https://votre-site.dokos.cloud/api/method/frappe.api.discovery.get/ToDo/Mon-Todo" \
     -H "Authorization: token votre_token_api:votresecret"

Exemple de réponse

{
  "data": {
    "name": "Mon-Todo",
    "doctype": "ToDo",
    "title": "Mon Todo",
    "source": "def on_update(doc, method):\n    if doc.status == 'Completed':\n        frappe.msgprint('Todo complété !')",
    "fields": [
      {
        "fieldname": "status",
        "fieldtype": "Select",
        "options": "Open\nPending\nCompleted",
        "label": "Statut"
      }
    ]
  }
}

::: info Si le flag expose_document_source est désactivé, la clé source sera présente dans la réponse mais sa valeur sera null. :::

Cas d'usage

Intégration avec des outils externes

L'API Discovery peut être utilisée pour synchroniser dynamiquement des configurations de documents avec des outils externes, comme des générateurs de documentation ou des systèmes de gestion de versions.

Débogage et analyse

Les développeurs peuvent utiliser cette API pour inspecter le code source des documents sans avoir à accéder directement à la base de données ou aux fichiers du serveur.

Bonnes pratiques

  • Sécurité : Activez le flag expose_document_source uniquement dans les environnements où cela est nécessaire (ex. : développement ou staging).
  • Performance : Évitez d'appeler cette API de manière excessive, car elle peut impacter les performances du serveur.
  • Confidentialité : Assurez-vous que les utilisateurs accédant à cette API ont les permissions appropriées pour consulter les documents.