L'API de découverte v2 permet aux développeurs d'explorer dynamiquement les endpoints disponibles dans Dokos. Cette API est conçue pour faciliter l'intégration et le développement d'applications tierces en fournissant une vue structurée des routes et des fonctionnalités exposées.
::: warning Attention Cette API est non stable et réservée aux développeurs. Aucune garantie de compatibilité n'est offerte pour les versions futures. Pour une documentation stable, consultez les guides officiels. :::
L'API de découverte v2 est accessible via l'endpoint suivant :
GET /api/v2/discovery
L'accès à cette API est restreint aux utilisateurs disposant des permissions de développeur. Pour activer cette permission :
La réponse de l'API est au format JSON et contient les sections suivantes :
{
"routes": {
"core": {
"/api/resource/Client": {
"methods": ["GET", "POST", "PUT", "DELETE"],
"parameters": {
"filters": "Filtres pour la recherche (ex: {\"nom\": \"Maison Verte SARL\"})",
"fields": "Champs à retourner (ex: [\"nom\", \"email\"])"
},
"examples": {
"GET": {
"request": "GET /api/resource/Client?fields=[\"nom\"]&filters={\"nom\": \"Maison Verte SARL\"}",
"response": {
"data": [
{
"nom": "Maison Verte SARL"
}
]
}
}
}
}
}
}
}
Voici comment interroger l'API de découverte v2 avec cURL :
curl -X GET "https://votre-instance.dokos.cloud/api/v2/discovery" \
-H "Authorization: token VOTRE_CLE_API:VOTRE_CLE_SECRETE"
L'API de découverte v2 peut être utilisée pour :
import requests
import json
# Récupérer les endpoints
discovery_url = "https://votre-instance.dokos.cloud/api/v2/discovery"
response = requests.get(discovery_url, auth=("VOTRE_CLE_API", "VOTRE_CLE_SECRETE"))
endpoints = response.json()
# Générer un client basique
for module, routes in endpoints["routes"].items():
for route, details in routes.items():
print(f"def {route.replace('/', '_').replace('-', '_')}(self, **kwargs):")
print(f" # {details['methods']} {route}")
print(f" return self._request('{details['methods'][0]}', '{route}', kwargs)")
Voici un aperçu du flux d'utilisation de l'API de découverte v2 :