Bridging the gap between deterministic API linting and Generative AI.
OpenAPI Spectral LLM is a tool designed to simplify API governance. It leverages Large Language Models (LLMs) to help developers write better Spectral rules, understand validation errors, and automatically fix OpenAPI specifications.
- Natural Language to Ruleset: Describe your governance policy (e.g., "All operation IDs must be verb-noun-resource") and let the LLM generate the correct Spectral YAML and JSONPath.
- Smart Error Explanation: Don't just get an error code. Get a contextual explanation of why your API definition failed the linter.
- AI-Powered Auto-Fix: Automatically suggest or apply fixes to your
openapi.yamlbased on Spectral violations. - Model Agnostic: Configurable to work with OpenAI (GPT-4), Anthropic (Claude), or local models via Ollama.
- .NET 10.0 SDK
- Node.js et npm (pour Spectral - optionnel en local)
dotnet restoredotnet runThe API will be accessible at https://localhost:5220.
Swagger UI interface: http://localhost:5220/swagger.
OpenAPI specification (JSON): http://localhost:5220/swagger/v1/swagger.json (or .yaml).
POST /api/accounts/create- Créer un compte bancaireGET /api/accounts/{id}- Obtenir les détails d'un comptePOST /api/accounts/{id}/deposit- Déposer de l'argentPOST /api/accounts/{id}/withdraw- Retirer de l'argent
Pour générer le fichier OpenAPI :
dotnet run --project scripts/OpenApiGenerator/OpenApiGenerator.csprojLe fichier openapi.json sera généré dans le dossier scripts/.
npm install -g @stoplight/spectral-clispectral lint scripts/openapi.jsonLes règles Spectral sont définies dans .spectral.yml. Le fichier étend les règles OpenAPI par défaut et ajoute des règles personnalisées pour :
- Vérifier la présence de descriptions sur les opérations
- Valider les codes de réponse
- Exiger des tags et operationId
- Vérifier la qualité des schémas
Bank/
├── Application/ # Couche Application
│ ├── Dtos/ # Data Transfer Objects
│ ├── Interfaces/ # Interfaces de dépôts
│ └── UseCases/ # Cas d'usage métier
├── Domain/ # Couche Domain
│ ├── Entities/ # Entités métier
│ └── ValueObjects/ # Value Objects (Money, etc.)
├── Infrastructure/ # Couche Infrastructure
│ └── Repositories/ # Implémentations des dépôts
├── Controllers/ # Contrôleurs API
└── scripts/
└── OpenApiGenerator/ # Générateur OpenAPI
Le projet inclut un workflow GitHub Actions qui :
- Build le projet
- Génère la documentation OpenAPI
- Valide avec Spectral
- Upload les rapports de validation comme artefacts
- Exécute les tests
- .NET 10.0 : Framework principal
- Swashbuckle.AspNetCore : Génération OpenAPI et Swagger UI
- Spectral : Validation de la spécification OpenAPI
- Clean Architecture : Architecture en couches
- DDD : Domain-Driven Design avec Value Objects