Swagger UI всегда появляется в NestJS - PullRequest
0 голосов
/ 27 апреля 2019

Я сейчас учусь в NestJS. Сейчас я экспериментирую с функцией Swagger. Я следовал объяснениям на сайте NestJS, и у меня появилась хорошая страница Swagger. Однако теперь я больше не могу использовать свои схемы контроллера.

Пример:
У меня есть путь /api/users, который будет возвращать список записей пользователя. После добавления функции Swagger я получаю интерфейс Swagger на /api. Когда я пытаюсь запросить /api/users, я также получаю пользовательский интерфейс, на этот раз пустой.
Когда я нажимаю кнопку «Попробуйте» для «пользовательского» API, будет выполняться /users вместо /api/users, конечно, с ответом 404.

Что я делаю не так? Пожалуйста, помогите.

1 Ответ

2 голосов
/ 27 апреля 2019

Я предполагаю, что вы установили глобальный префикс вашего приложения на /api.Тогда вы также должны установить базовый путь для Swagger соответственно.Кроме того, вы должны смонтировать документацию по неочевидному пути:

// Set the global prefix for all controllers to /api
app.setGlobalPrefix('api');

const document = SwaggerModule.createDocument(
  app,
  new DocumentBuilder()
    // Set the base path for swagger accordingly
    .setBasePath('api')
    .build(),
);

// Choose an unused path to mount your swagger module
SwaggerModule.setup('docs', app, document);
//                  ^^^^^^
...