Добавьте поле основного пути Swagger в проект Nest. js - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь использовать nestjs / swagger для создания файла swagger из моего бэкэнда, и я столкнулся с проблемой, связанной с базовым путем. Чего я хочу добиться, так это показать версию как базовый путь вместо того, чтобы показывать ее во всех доступных методах, что уродливо и сбивает с толку.

Мой API на данный момент имеет следующую структуру (это набор что присутствует в app.module.ts):

const routes: Routes = [
  {
    path: '/api',
    module: ApiModule,
    children: [
      {
        path: '/v1',
        module: V1Module,
        children: [
          {
            path: '/orders',
            module: OrdersModule
          },
          {
            path: '/users',
            module: UsersModule
          }
        ]
      }
    ]
  }
];

Таким образом, когда я генерирую и проверяю сваггер, я вижу все свои методы, следуя префиксу /api/v1. Это может быть примером:

заказов

GET   /api/v1/orders
POST  /api/v1/orders
GET   /api/v1/orders/{order_id}
...

пользователей

GET   /api/v1/users
POST  /api/v1/users
GET   /api/v1/users/{user_id}
...

Что я хочу получить избавиться от /api/v1, появляющегося в любом методе. Я знаю, что у SWAGGER есть поля для host и basePath, но я не нахожу способа заполнить его в Nest. js. Исследуя, я обнаружил, что существуют методы .setBasePath() и .addServer(), но они не работают для меня (я уверен, что они устарели).

Большое спасибо за вашу помощь.

1 Ответ

1 голос
/ 20 февраля 2020

Если вы хотите, чтобы nest js добавлял api / v1 к каждой конечной точке, используйте для этого setGlobalPrefix('api/v1').

https://docs.nestjs.com/faq/global-prefix#global -prefix

...