@univ-lehavre/atlas-crf-openapi
@univ-lehavre/atlas-crf-openapi
Outils CLI et bibliothèque pour extraire, comparer et servir des spécifications OpenAPI REDCap.
L’éditeur REDCap a donné son consentement à la publication de ce projet, qui est développé de manière indépendante et n’est pas affilié à REDCap ou à son éditeur, voir le thread du forum de la communauté REDCap.
About
Ce package analyse le code source PHP de REDCap pour produire des spécifications OpenAPI, comparer des versions et détecter les changements d’API. Il expose aussi un serveur de documentation et une CLI redcap avec commandes extract, compare et docs.
Features
- Extractor: Generate OpenAPI specs from REDCap PHP code
- Comparator: Compare specs between versions
- Server: API documentation with Swagger UI and Redoc
- CLI: Interactive interface with
@clack/prompts
Installation
pnpm add @univ-lehavre/atlas-crf-openapiUsage
Interactive CLI
pnpm -F @univ-lehavre/atlas-crf-openapi cliDirect Commands
pnpm -F @univ-lehavre/atlas-crf-openapi extract # Extract OpenAPI specpnpm -F @univ-lehavre/atlas-crf-openapi compare # Compare versionspnpm -F @univ-lehavre/atlas-crf-openapi docs # Documentation serverProgrammatic Usage
import { extract, compare, serve } from '@univ-lehavre/atlas-crf-openapi';
// Extract an OpenAPI spec from REDCap source codeconst result = extract({ version: '14.5.10', sourcePath: './upstream/versions', outputPath: './specs/versions/redcap-14.5.10.yaml',});
// Compare two versionsconst diff = compare({ oldSpecPath: './specs/versions/redcap-14.5.10.yaml', newSpecPath: './specs/versions/redcap-14.6.0.yaml',});
// Serve the documentationserve({ specPath: './specs/versions/redcap-14.5.10.yaml', port: 3000,});Scripts
pnpm -F @univ-lehavre/atlas-crf-openapi dev # Developmentpnpm -F @univ-lehavre/atlas-crf-openapi build # Buildpnpm -F @univ-lehavre/atlas-crf-openapi test # Testspnpm -F @univ-lehavre/atlas-crf-openapi lint # ESLintExports
| Export | Description |
|---|---|
. | All modules |
./extractor | OpenAPI extraction from PHP |
./comparator | Comparison utilities |
./server | Documentation server |
Documentation
Organization
This package is part of Atlas, a set of tools developed by Le Havre Normandie University to facilitate research and collaboration between researchers.
Atlas is developed as part of two projects led by Le Havre Normandie University:
- Campus Polytechnique des Territoires Maritimes et Portuaires: research and training program focused on maritime and port issues
- EUNICoast: European university alliance bringing together institutions located in European coastal areas
License
MIT
REDCap source code is proprietary and is NOT included in this repository.