swagger 中的自定义响应

问题描述 投票:0回答:3

我正在写

/// <summary>
/// someMethod
/// </summary>
/// <param name="name">name</param>
/// <response code="200" cref="APIResult">Success</response>
/// <returns></returns>
[HttpGet("someMethod")]
[ProducesResponseType(typeof(APIResult), 200)]
public APIResult someMethod(string name)
{
    return new APIResult();
}

但是我无法大肆获取 APIResult 结构

enter image description here

我必须做什么?

我使用.net core 2.1
库 NSwag.AspNetCore 版本=12.3.1

c# swagger asp.net-apicontroller
3个回答
1
投票

因为是通过注释,而不是通过注释:

 [ProducesResponseType(typeof(APIResult), 200)]
 public async Task<APIResult> get()
 {
 }

swagger 读取模型你想要暴露的内容

更新:好的,抱歉。我没有读完所有内容。

请尝试添加此内容:

[Produces("application/json")]

0
投票

您需要使用以下内容,您的返回类型错误

public async Task<ActionResult>

然后

return Ok<object>;

0
投票

检查

APIResult
类的定义,并确保其字段被定义为属性。所以如果你的班级看起来像这样:

public class APIResult
{
    public string CustomProperty;
}

尝试将其更改为:

public class APIResult
{
    public string CustomProperty { get; set; }
}

类变量,即使是公共变量,也不会通过 Swagger 公开。因此,如果您想公开它们,则必须通过至少添加

get
关键字来使它们成为属性。

© www.soinside.com 2019 - 2024. All rights reserved.