Swagger 文档中的 JsonResult

JsonResult in Swagger documentation

我正在使用 Swashbuckle 为我的 ASP MVC Web API 生成文档。一切都很好,除了 JsonResult 的文档。这是一个例子。我有一个测试 class:

public class Test
{
    public string Testing { get; set; }
}

控制器中的方法:

[HttpGet]
public JsonResult<Test> GetTest()
{
    Test test = new Test { Testing = "testing json" };

    return Json(test);
}

基于此配置,Swagger 生成示例值:

{
    "Content": {
        "Testing": "string"
    },
    "SerializerSettings": {
        "ReferenceLoopHandling": 0,
        "MissingMemberHandling": 0,
        "ObjectCreationHandling": 0,
        "NullValueHandling": 0,
        "DefaultValueHandling": 0,
        "Converters": [{
                "CanRead": true,
                "CanWrite": true
            }
        ],
        "PreserveReferencesHandling": 0,
        "TypeNameHandling": 0,
        "MetadataPropertyHandling": 0,
        "TypeNameAssemblyFormat": 0,
        "TypeNameAssemblyFormatHandling": 0,
        "ConstructorHandling": 0,
        "ContractResolver": {},
        "EqualityComparer": {},
        "ReferenceResolver": {},
        "ReferenceResolverProvider": {
            "Method": {},
            "Target": {}
        },
        "TraceWriter": {
            "LevelFilter": 0
        },
        "Binder": {},
        "SerializationBinder": {},
        "Error": {},
        "Context": {
            "m_additionalContext": {},
            "m_state": 1
        },
        "DateFormatString": "string",
        "MaxDepth": 0,
        "Formatting": 0,
        "DateFormatHandling": 0,
        "DateTimeZoneHandling": 0,
        "DateParseHandling": 0,
        "FloatFormatHandling": 0,
        "FloatParseHandling": 0,
        "StringEscapeHandling": 0,
        "Culture": "string",
        "CheckAdditionalContent": true
    },
    "Encoding": {
        "m_codePage": 0,
        "dataItem": {
            "m_dataIndex": 0,
            "m_uiFamilyCodePage": 0,
            "m_webName": "string",
            "m_headerName": "string",
            "m_bodyName": "string",
            "m_flags": 0
        },
        "m_isReadOnly": true,
        "encoderFallback": {
            "bIsMicrosoftBestFitFallback": true
        },
        "decoderFallback": {
            "bIsMicrosoftBestFitFallback": true
        }
    },
    "Request": {}
}

这是不正确的。我不想要 JsonResult 的文档,只想要 Test class 的文档。我该如何改变它?我怎样才能告诉 Swagger 只为 Test class 准备文档?

一个选项是使用 SwaggerResponse 看看这个示例:

[SwaggerResponse(400, "Bad request")]
public class SwaggerAnnotatedController : ApiController
{
    [SwaggerResponseRemoveDefaults]
    [SwaggerResponse(HttpStatusCode.Created, Type = typeof(int))]
    [SwaggerResponse(HttpStatusCode.BadRequest, "Invalid message", typeof(HttpError))] 
    public int Create(Message message)
    {
        throw new NotImplementedException();
    }

这里是项目的 link:

https://github.com/domaindrivendev/Swashbuckle/blob/5489aca0d2dd7946f5569341f621f581720d4634/Swashbuckle.Dummy.Core/Controllers/SwaggerAnnotatedController.cs#L15