Swashbuckle / swagger 文档缺失信息
Swashbuckle / swagger Document missing information
我似乎无法理解为什么我的 swagger 文档 UI 缺少控制器中每个 Get 和 Post 的模型架构详细信息?
我是 运行 SwashBuckle
ASP.NET 核心 nuget 包 v4.0.1,即使升级到最新包后也没有显示模式详细信息? (我的 WebAPI 是在 Core 2.2 中构建的)
我只有 运行 通过 swagger 文档 w.r.t 配置,没有任何指示我可以从哪里获得要显示的附加信息?
经过一番研究,我发现如果我使用以下属性
[ProducesResponseType(typeof(Models.Customer), StatusCodes.Status200OK)]
[HttpGet("{Id}/customer")]
public async Task<IActionResult> GetCustomer(int Id)
显示 Schemas
大摇大摆 UI 块,这正是我想要的。但是我不想经历
我的每个 Controller Get / Post 方法并添加此属性。它总是在没有这个的情况下工作,但是什么可以阻止它开箱即用?
所以,你的方法returns IActionResult
,这是很常见的事情,编译器看不到返回的真实结果。这就是为什么你应该使用 ProducesResponseType
.
如果您想使用 IActionResult
和 Asp.Net MVC 控制器,只能通过这种方式使用。
但还有一点是:你真的需要 Asp.Net MVC 控制器吗?如果您需要 Asp.Net MVC 控制器,为什么要创建 swagger 文档?这些都是自相矛盾的。
Swagger 需要创建 Public Api 文档。增加外部程序员使用您的 API 的可能性。在这种情况下,最好使用 Api 控制器。
如果您需要使用 Asp.Net MVC 控制器和 Autorization 等功能,那么您不需要创建 Swagger,因为它应该在您自己的项目中使用。
Swashbuckle 根据动作的 return 类型创建模型。您有多种选择:
您可以 return 实际类型(例如 public async Task<Models.Customer> GetCustomer(int Id)
如果你return一个IActionResult
,你可以使用ProducesResponseType
属性
您可以 return 一个 ActionResult<T>
,其工作方式与 IActionResult
相同,但具有实际类型
您可以查看文档以获取更多信息:https://docs.microsoft.com/en-us/aspnet/core/web-api/action-return-types?view=aspnetcore-3.1
我似乎无法理解为什么我的 swagger 文档 UI 缺少控制器中每个 Get 和 Post 的模型架构详细信息?
我是 运行 SwashBuckle
ASP.NET 核心 nuget 包 v4.0.1,即使升级到最新包后也没有显示模式详细信息? (我的 WebAPI 是在 Core 2.2 中构建的)
我只有 运行 通过 swagger 文档 w.r.t 配置,没有任何指示我可以从哪里获得要显示的附加信息?
经过一番研究,我发现如果我使用以下属性
[ProducesResponseType(typeof(Models.Customer), StatusCodes.Status200OK)]
[HttpGet("{Id}/customer")]
public async Task<IActionResult> GetCustomer(int Id)
显示 Schemas
大摇大摆 UI 块,这正是我想要的。但是我不想经历
我的每个 Controller Get / Post 方法并添加此属性。它总是在没有这个的情况下工作,但是什么可以阻止它开箱即用?
所以,你的方法returns IActionResult
,这是很常见的事情,编译器看不到返回的真实结果。这就是为什么你应该使用 ProducesResponseType
.
如果您想使用 IActionResult
和 Asp.Net MVC 控制器,只能通过这种方式使用。
但还有一点是:你真的需要 Asp.Net MVC 控制器吗?如果您需要 Asp.Net MVC 控制器,为什么要创建 swagger 文档?这些都是自相矛盾的。
Swagger 需要创建 Public Api 文档。增加外部程序员使用您的 API 的可能性。在这种情况下,最好使用 Api 控制器。
如果您需要使用 Asp.Net MVC 控制器和 Autorization 等功能,那么您不需要创建 Swagger,因为它应该在您自己的项目中使用。
Swashbuckle 根据动作的 return 类型创建模型。您有多种选择:
您可以 return 实际类型(例如
public async Task<Models.Customer> GetCustomer(int Id)
如果你return一个
IActionResult
,你可以使用ProducesResponseType
属性您可以 return 一个
ActionResult<T>
,其工作方式与IActionResult
相同,但具有实际类型
您可以查看文档以获取更多信息:https://docs.microsoft.com/en-us/aspnet/core/web-api/action-return-types?view=aspnetcore-3.1