5

我正在构建一个具有公共 API 和内部 API 的应用程序。我想将这些文档发布到不同的路线。我认为这可以通过仅向文档(addTag)添加某些标签来完成,但在进一步阅读和实验之后,它并没有完成这项工作。

文档始终包含所有内容,所有模块的所有记录端点。

这甚至可能吗?如果是这样,怎么做?

我不相信代码是必要的,但 FWIW:

const pubOptions = new DocumentBuilder()
    .setTitle('Pub API Docs')
    .setDescription('Blah blah API documentation')
    .setVersion(p.version)
    .addBearerAuth()
    .addTag('public-app')
    .build();
const document = SwaggerModule.createDocument(app, pubOptions);
SwaggerModule.setup('public-api', app, document);

const internalOptions = new DocumentBuilder()
    .setTitle('Internal API Docs')
    .setDescription('Blah blah API documentation')
    .setVersion(p.version)
    .addBearerAuth()
    .addTag('internal')
    .build();
const iDocument = SwaggerModule.createDocument(app, internalOptions);
SwaggerModule.setup('internal-api', app, iDocument);

4

1 回答 1

6

您需要告诉SwaggerModule.createDocument函数要组合的 swagger 中包含哪些模块。这是相关文档。作为第三个参数,您可以传入一个具有include包含模块数组的属性的对象。这些模块是与即将构建的 swagger 文档相关的模块。

于 2020-01-24T19:44:09.383 回答