【发布时间】:2021-01-11 12:50:34
【问题描述】:
我是 Swagger 的新手,据我所知,它用于自动生成 API 文档。除此之外,我认为它还用于使用 Swagger Codegen 生成前端。在这一步,我对在我的项目中正确使用 swagger 感到困惑。
我已使用 .NET Core 创建了后端,并且 API 方法已准备就绪。现在,我需要将 swagger 集成到我的项目中。我有一个初始的 Angular 前端应用程序,但由于代码混合,我想从 stratch 创建前端,然后将 Swagger 集成到它。所以;
1. 我应该使用必要的 Swagger 工具生成前端吗?好像不太好,但是如果一般用,随着项目变大不会有问题,当然可以用那个选项。
2. 如果我从 stratch 创建 Angular 项目,如何集成 swagger?是否应该使用相关组件的ts文件生成代码?
3. 如果我将新组件添加到前端,并将相应的 API 方法添加到已经使用 Swagger 的 API。我应该做哪些修改?我试了一下,它在构建项目后生成了一个新的 swagger 配置文件。
【问题讨论】:
-
我认为你没有清楚地理解什么是 swagger ......它的 OpenApi 基本上是一个描述 REST api 的工具。它与前端或角度无关。现在网上有像 swashbuckle 或 nswag github.com/RicoSuter/NSwag 这样的工具可以根据 api 规范自动为你生成一个前端应用程序。他们还可以根据您的 net core 项目生成 OpenApi/swagger 规范。
-
所以我使用的工作流程是:创建一个asp net core应用程序。然后我集成了 NSwag,它基于我的 .net 核心控制器生成 api 文档(例如 swagger.json)。然后我再次使用 NSwag 工具链在 typescript 中生成 REST api 客户端,然后我将其放置在我的 Angular 项目中。然后我可以轻松地从角度调用休息服务/客户端。
-
@sommmen 感谢您的帮助。你说得对,我有点困惑,需要澄清一下。所以,我需要一个工具或库来让我自动生成 api 文档。我想我可以使用 Swagger 来实现这个目标。另一方面,我对上面的 3 点感到困惑。你能澄清一下吗?
-
最好的方法是前往github.com/RicoSuter/NSwag 并创建一个小示例项目。下载 nswag 自带的工具,查看代码生成选项即可。
-
@sommmen 很好的解释。你能确认这些问题吗? 1) 据我了解,我们可以集成 Swagger,然后在运行后端后通过 Swagger 页面测试我们的 API 方法。这一步有没有必要使用swashbuckle或者nswag? 2) 之后我可以使用 NSwag 自动生成前端应用程序。但是,在这一步,它会用 html 和 ts 文件创建 cpomponent 吗?您是否建议将这种方法与生成的组件一起使用? 3) “他们还可以根据你的网络核心项目生成 OpenApi/swagger 规范”是什么意思
标签: asp.net angular typescript asp.net-core swagger