2017-10-12 4 views
5

Voici comment configurer fanfaronnades:changement url chemin fanfaronnades 2.0 docs

const openapi = Openapi.initialize({ 
    paths: openApiPaths, 
    app, 
    apiDoc, 
    }); 
    const openApiSpec = openapi.apiDoc; 

    console.log(openApiSpec); 

    app.use(swaggerUI(openApiSpec)); 

Comment puis-je changer le chemin de base /docs/-/projectName/docs/?

Je ne trouve pas de réponse pertinente à cette

EDIT

Mon api doc est décrit ci-dessous dans son propre fichier:

export const apiDoc = { 
    'x-express-openapi-additional-middleware': [checkBodyValidity], 
    swagger: '2.0', 
    basePath: '/api/v1', 
    info: { 
    title: 'Documentation Rest API', 
    version: 'v1', 
    }, 
    paths: {}, 
    definitions: {} 
} 

CheckBodyValidity est une sorte de intergiciel qui vérifie la validité des paramètres de requête (non pertinent pour ma question):

export const checkBodyValidity: any = (req, res, next) => {} 

Swagger est initialisé comme ci-dessous dans un fichier nommé openapiSetup:

export async function init(app: any): Promise<any> { 

[...] 

    const openapi = Openapi.initialize({ 
    paths: openApiPaths, 
    app, 
    apiDoc, 
    }); 
    const openApiSpec = openapi.apiDoc; 

    app.use(swaggerUI(openApiSpec)); 

} 

-> openApiPaths est la partie chemin {} si le doc. Il est construit à partir des répertoires et des noms de fichiers

Enfin, en application express:

await openapiSetup.init(app); 

Répondre

3

Qu'avez-vous dans votre YAML? Devrait être en mesure de mettre à jour votre chemin en modifiant:

# Relative URL to external documentation 
externalDocs: 
    url: /docs 
    description: Find more info here 

Plus d'informations [ici] [1]

Edit:

Avez-vous essayé d'ajouter ce qui suit à votre objet APIDOC.

export const apiDoc = { 
    'x-express-openapi-additional-middleware': [checkBodyValidity], 
    swagger: '2.0', 
    basePath: '/api/v1', 
    info: { 
    title: 'Documentation Rest API', 
    version: 'v1', 
    }, 
    paths: {}, 
    definitions: {}, 
    externalDocs: { 
    description: "Docs", 
    url: "http://url/projectName/docs" 
    } 
} 
+0

Je n'ai pas YAML et j'utilise fanfaronnades 2.0, je vais modifier ma question avec plus d'infos –

+0

Je mis à jour ma réponse – dzm

+0

A quel niveau faire une place « url »? Même niveau que "chemins:"? –