Documentation API

Intégrez nos APIs IA dans vos workflows COBOL en quelques minutes

REST API Python SDK Node.js SDK

🚀 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
}
POST

Analyser du code COBOL

/v1/cobol/analyze

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
}
POST

Générer la documentation

/v1/cobol/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)
POST

Optimiser requêtes SQL

/v1/cobol/optimize-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 API

Ubnbee 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.

Chat Widget - v2024.09.04
Questionnez notre nouvelle IA !
Mieux que chat GPT 5 ?
A quoi sert Ubnbee.ai ?
Quels sont les tarifs de Ubnbee ?
Est-ce facile à intégrer ?
Données RGPD et sécurité
Ubnbee.ai est-il fiable ?
Ubnbee Logo
Ubnbee Logo Besoin d'aide ?
Robot

Bonjour, je suis Ubnbee
Comment puis-je vous aider ?