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.
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.
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}
curl -X GET "https://votre-site.dokos.cloud/api/method/frappe.api.discovery.get/ToDo/Mon-Todo" \
-H "Authorization: token votre_token_api:votresecret"
{
"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.
:::
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.
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.
expose_document_source uniquement dans les environnements où cela est nécessaire (ex. : développement ou staging).