Aller au contenu

Rendre disponible la documentation de l'interface logicielle avec express et netlify

Documentation de l'interface logicielle

  1. Utiliser SwaggerEditor pour créer la documentation de l'interface logicielle.

    SwaggerEditor

  2. Exporter votre documentation en format yaml.

    SwaggerEditor

  3. Convertir le fichier yaml en html avec redoc-cli.

    console
    npx @redocly/cli build-docs -o index.html api.yaml
    
  4. Copier le index.html dans le dossier 'src' de votre projet.

  5. Copier également le index.html dans le dossier 'functions' de votre projet, pour le rendre disponible sur le serveur netlify.

  6. Ajouter le code suivant dans le fichier 'server.ts' pour rendre disponible la documentation dans la route '/api-docs.

    // rend disponible la documentation de l'interface logicielle
    app.get('/api-docs/', async (req, res) => {
        res.set('Content-Security-Policy', 'script-src blob:');
        res.set('Content-Security-Policy', 'worker-src blob:');
        res.sendFile(path.join(__dirname, 'index.html'));
    });
    
    // redirige vers api-docs
    app.get('/', (req, res) => {
        res.redirect('/api-docs');
    });
    
  7. Mettre à jour le fichier 'netlify.toml' pour rendre disponible la documentation sur le serveur netlify.

    [build]
    command = "npm install && npm run build"
    functions = "functions"
    [functions]
    external_node_modules = ["express"]
    # Ajout de la documentation de l'interface logicielle
    included_files=["./functions/index.html"]
    node_bundler = "esbuild"
    [[redirects]]
    force = true
    from = "/*"
    status = 200
    to = "/.netlify/functions/api/:splat"
    
  8. Pousser les changements dans le dépôt git et vérifier que la documentation est disponible sur le serveur netlify.