Swagger UI, показывающий сырой HTML-код в экспресс-узел - PullRequest
0 голосов
/ 13 июня 2019

Я использую swagger в приложении nodejs express.Как и следовало ожидать, он должен дать пользовательский интерфейс в ответ, но я получаю HTML-код.я не знаю, что здесь не так.это мой код чванства

var swaggerUi = require('swagger-ui-express');
// swagger definition
var swaggerDefinition = {
  info: {
    title: 'expense manager api',
    version: '3.0.0',
    description: 'api docs for all apis',
  },
  host: 'localhost:8080',
  basePath: '/',
};
// options for the swagger docs
var options = {
  // import swaggerDefinitions
  swaggerDefinition: swaggerDefinition,
  // path to the API docs
  apis: ['./server/routes/admin_routes/*.js','./server/routes/user_routes/*.js'],// pass all in array
  };
var swaggerSpec = swaggerJSDoc(options);
app.get('/swagger.json', function(req, res) {   res.setHeader('Content-Type', 'application/json');   res.send(swaggerSpec); });
app.get('/api-docs',swaggerUi.serve,swaggerUi.setup(swaggerSpec));

, но при переходе на localhost: 8080 / api-docs / он дает необработанный HTML-код.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Swagger UI</title>
  <link rel="stylesheet" type="text/css" href="./swagger-ui.css" >
  <link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" /><link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" />

  <style>
    html
    {
        box-sizing: border-box;
        overflow: -moz-scrollbars-vertical;
        overflow-y: scroll;
    }
    *,
    *:before,
    *:after
    {
        box-sizing: inherit;
    }

    body {
      margin:0;
      background: #fafafa;
    }
  </style>
</head>

<body>

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="position:absolute;width:0;height:0">
  <defs>
    <symbol viewBox="0 0 20 20" id="unlocked">

Я не знаю, что здесь не так.Любая помощь будет здорово. Заранее спасибо

1 Ответ

0 голосов
/ 29 июня 2019

Используйте app.use () вместо app.get () в соответствии с документацией.( введите описание ссылки здесь )

app.use('/api-docs',swaggerUi.serve,swaggerUi.setup(swaggerSpec));
...