Documentation API
Intégrez nos APIs IA dans vos workflows COBOL en quelques minutes
🚀 Démarrage rapide
1. Obtenez votre clé API
Créez un compte sur notre plateforme et récupérez votre clé API dans le tableau de bord.
2. Authentification
Toutes les requêtes API nécessitent un header d'authentification :
Authorization: Bearer VOTRE_CLE_API
3. Premier appel API
Testez l'API avec cURL :
curl -X POST https://api.ubnbee.ai/v1/cobol/analyze \
-H "Authorization: Bearer VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{
"code": "IDENTIFICATION DIVISION.\n PROGRAM-ID. HELLO.\n PROCEDURE DIVISION.\n DISPLAY \"Hello World\".\n STOP RUN.",
"options": {
"detect_issues": true,
"complexity_analysis": true
}
}'
4. Réponse
✅ Réponse (200 OK)
{
"status": "success",
"analysis": {
"program_id": "HELLO",
"divisions": ["IDENTIFICATION", "PROCEDURE"],
"complexity_score": 1,
"lines_of_code": 4,
"issues": [],
"suggestions": [
"Consider adding ENVIRONMENT and DATA divisions for better structure"
]
},
"tokens_used": 87
}
Analyser du code COBOL
Analyse statique de code COBOL : détection d'erreurs, calcul de complexité, suggestions d'amélioration.
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
code |
string | REQUIS | Code COBOL à analyser (max 100 000 caractères) |
options.detect_issues |
boolean | OPTIONNEL | Activer la détection d'erreurs (défaut: true) |
options.complexity_analysis |
boolean | OPTIONNEL | Calculer la complexité cyclomatique (défaut: true) |
options.standards_check |
string | OPTIONNEL | Standard à vérifier: "COBOL-85", "COBOL-2002", "COBOL-2014" |
Réponse
{
"status": "success",
"analysis": {
"program_id": "MAINPROG",
"divisions": ["IDENTIFICATION", "ENVIRONMENT", "DATA", "PROCEDURE"],
"complexity_score": 12,
"lines_of_code": 487,
"issues": [
{
"severity": "warning",
"line": 125,
"message": "Variable TEMP-VAR declared but not used",
"suggestion": "Remove unused variables to improve code clarity"
}
],
"suggestions": [
"Consider refactoring procedures longer than 50 lines",
"Use EVALUATE instead of nested IF statements for better readability"
]
},
"tokens_used": 2340
}
Générer la documentation
Génération automatique de documentation technique à partir de code COBOL.
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
code |
string | REQUIS | Code COBOL à documenter |
format |
string | OPTIONNEL | Format de sortie: "markdown", "html", "pdf" (défaut: "markdown") |
language |
string | OPTIONNEL | Langue de la documentation: "fr", "en" (défaut: "fr") |
include_diagrams |
boolean | OPTIONNEL | Générer des diagrammes de flux (défaut: false) |
Optimiser requêtes SQL
Optimisation de requêtes SQL embarquées dans code COBOL (DB2, Oracle, SQL Server).
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
code |
string | REQUIS | Code COBOL avec SQL embarqué |
database |
string | OPTIONNEL | Type de BDD: "db2", "oracle", "sqlserver" (défaut: "db2") |
optimization_level |
string | OPTIONNEL | Niveau d'optimisation: "conservative", "moderate", "aggressive" |
SDKs Officiels
Bibliothèques open source pour Python et Node.js
Python SDK
Installation
pip install ubnbee-cobol
Utilisation
from ubnbee_cobol import Client
# Initialiser le client
client = Client(api_key="votre_cle_api")
# Analyser du code COBOL
with open("program.cbl", "r") as f:
cobol_code = f.read()
result = client.analyze(
code=cobol_code,
options={
"detect_issues": True,
"complexity_analysis": True,
"standards_check": "COBOL-2014"
}
)
print(f"Complexité: {result.analysis.complexity_score}")
print(f"Lignes de code: {result.analysis.lines_of_code}")
print(f"Tokens utilisés: {result.tokens_used}")
# Générer la documentation
doc = client.generate_documentation(
code=cobol_code,
format="markdown",
language="fr"
)
with open("documentation.md", "w") as f:
f.write(doc.content)
Node.js SDK
Installation
npm install @ubnbee/cobol-sdk
Utilisation
const { CobolClient } = require('@ubnbee/cobol-sdk');
const fs = require('fs').promises;
// Initialiser le client
const client = new CobolClient({
apiKey: 'votre_cle_api'
});
async function analyzeCobolProgram() {
// Lire le fichier COBOL
const cobolCode = await fs.readFile('program.cbl', 'utf8');
// Analyser le code
const result = await client.analyze({
code: cobolCode,
options: {
detectIssues: true,
complexityAnalysis: true,
standardsCheck: 'COBOL-2014'
}
});
console.log(`Complexité: ${result.analysis.complexityScore}`);
console.log(`Lignes de code: ${result.analysis.linesOfCode}`);
console.log(`Tokens utilisés: ${result.tokensUsed}`);
// Générer la documentation
const doc = await client.generateDocumentation({
code: cobolCode,
format: 'markdown',
language: 'fr'
});
await fs.writeFile('documentation.md', doc.content);
}
analyzeCobolProgram().catch(console.error);
📚 Exemples d'utilisation
Cas d'usage 1 : Audit de code legacy
Analyser un répertoire complet de programmes COBOL pour identifier les problèmes de qualité.
import os
from ubnbee_cobol import Client
client = Client(api_key="votre_cle_api")
# Parcourir tous les fichiers .cbl
results = []
for root, dirs, files in os.walk("/path/to/cobol/programs"):
for file in files:
if file.endswith(".cbl"):
filepath = os.path.join(root, file)
with open(filepath, "r") as f:
code = f.read()
result = client.analyze(code=code)
results.append({
"file": filepath,
"complexity": result.analysis.complexity_score,
"issues": len(result.analysis.issues),
"loc": result.analysis.lines_of_code
})
# Générer rapport
import pandas as pd
df = pd.DataFrame(results)
df.to_csv("audit_report.csv", index=False)
print(f"Programmes analysés: {len(results)}")
print(f"Complexité moyenne: {df['complexity'].mean():.2f}")
print(f"Total issues: {df['issues'].sum()}")
Cas d'usage 2 : Génération de documentation batch
Créer automatiquement la documentation pour tous les programmes d'un projet.
const { CobolClient } = require('@ubnbee/cobol-sdk');
const fs = require('fs').promises;
const path = require('path');
const client = new CobolClient({ apiKey: 'votre_cle_api' });
async function generateDocsForProject(srcDir, docsDir) {
const files = await fs.readdir(srcDir);
for (const file of files) {
if (file.endsWith('.cbl')) {
const filepath = path.join(srcDir, file);
const code = await fs.readFile(filepath, 'utf8');
const doc = await client.generateDocumentation({
code,
format: 'html',
language: 'fr',
includeDiagrams: true
});
const docPath = path.join(docsDir, `${file}.html`);
await fs.writeFile(docPath, doc.content);
console.log(`✓ Documentation générée: ${file}`);
}
}
}
generateDocsForProject('./src/cobol', './docs')
.then(() => console.log('✅ Documentation complète générée'))
.catch(console.error);
Cas d'usage 3 : Intégration CI/CD
Ajouter une étape d'analyse de qualité dans votre pipeline GitLab CI.
# .gitlab-ci.yml
stages:
- test
- quality
cobol_quality_check:
stage: quality
image: python:3.11
before_script:
- pip install ubnbee-cobol
script:
- python scripts/quality_check.py
artifacts:
reports:
junit: quality_report.xml
paths:
- quality_report.xml
- quality_report.html
only:
- merge_requests
- main
Script Python correspondant :
# scripts/quality_check.py
import os
import sys
from ubnbee_cobol import Client
client = Client(api_key=os.getenv("UBNBEE_API_KEY"))
max_complexity = 15
max_issues_high = 0
failed = False
results = []
for file in os.listdir("src/"):
if file.endswith(".cbl"):
with open(f"src/{file}", "r") as f:
code = f.read()
result = client.analyze(code=code)
high_issues = [i for i in result.analysis.issues if i.severity == "error"]
if result.analysis.complexity_score > max_complexity:
print(f"❌ {file}: Complexité trop élevée ({result.analysis.complexity_score})")
failed = True
if len(high_issues) > max_issues_high:
print(f"❌ {file}: {len(high_issues)} erreurs critiques")
failed = True
results.append(result)
# Générer rapport JUnit XML
# ... (code de génération du rapport)
sys.exit(1 if failed else 0)
Prêt à commencer ?
Obtenez votre clé API et testez gratuitement avec 1000 tokens offerts
Créer mon compte APIUbnbee AI ©
Nos chatbots intelligents améliorent l'expérience client et automatisent les tâches essentielles. Une solution évolutive et personnalisée pour entreprises, e-commerce, restaurants et services B2B.
7 jours d'essai gratuit.