是否可以在 Swagger UI 的参数部分显示请求正文对象?
Is it possible to show request body objects in the parameters section of Swagger UI?
我在我的 .Net Core Web API 项目中使用 Swashbuckle。像往常一样,我有一些 GET 和 POST 请求。
这是一个例子:
/// <summary>
/// Test request
/// </summary>
[HttpPost("Test")]
[Consumes("application/json")]
[Produces("application/json")]
[SwaggerResponse(200, "Request Executed", typeof(ResponseObject))]
public IActionResult Test([FromBody] TestObject t)
{
var response = new ResponseObject
{
Id = t.Id,
Name = t.Name,
};
return Content(response.JsonSerialize());
}
使用过的对象:
/// <summary>
/// An example object
/// </summary>
public class TestObject
{
/// <summary>
/// Object ID
/// </summary>
public string Id { get; set; }
/// <summary>
/// Object name
/// </summary>
public string Name { get; set; }
}
/// <summary>
/// An example object
/// </summary>
public class ResponseObject
{
/// <summary>
/// Object ID
/// </summary>
public string Id { get; set; }
/// <summary>
/// Object name
/// </summary>
public string Name { get; set; }
}
结果如下:
我希望看到的是 "Parameters" 部分中的反序列化对象,正如我在其他一些 Swagger/Swashbuckle 样本(例如 Petstore)中看到的那样。或者,至少,类似于 OpenAPI v2 规范中的 `c.SerializeAsV2 = true;`:
所以,问题是,是否可以在“参数”部分显示反序列化的对象?
由于您使用的是对象而不是查询字符串参数,因此 TestObject
的属性将不会单独显示,因为对象正在封装。
具有单独的字段用于查询字符串参数。
您可以创建 custom Swagger layouts 来显示您喜欢的数据,但我建议保持原样,以符合 Swagger UI 的普遍期望。
也可以随意将两者结合起来;那也行。
我在我的 .Net Core Web API 项目中使用 Swashbuckle。像往常一样,我有一些 GET 和 POST 请求。
这是一个例子:
/// <summary>
/// Test request
/// </summary>
[HttpPost("Test")]
[Consumes("application/json")]
[Produces("application/json")]
[SwaggerResponse(200, "Request Executed", typeof(ResponseObject))]
public IActionResult Test([FromBody] TestObject t)
{
var response = new ResponseObject
{
Id = t.Id,
Name = t.Name,
};
return Content(response.JsonSerialize());
}
使用过的对象:
/// <summary>
/// An example object
/// </summary>
public class TestObject
{
/// <summary>
/// Object ID
/// </summary>
public string Id { get; set; }
/// <summary>
/// Object name
/// </summary>
public string Name { get; set; }
}
/// <summary>
/// An example object
/// </summary>
public class ResponseObject
{
/// <summary>
/// Object ID
/// </summary>
public string Id { get; set; }
/// <summary>
/// Object name
/// </summary>
public string Name { get; set; }
}
结果如下:
我希望看到的是 "Parameters" 部分中的反序列化对象,正如我在其他一些 Swagger/Swashbuckle 样本(例如 Petstore)中看到的那样。或者,至少,类似于 OpenAPI v2 规范中的 `c.SerializeAsV2 = true;`:
所以,问题是,是否可以在“参数”部分显示反序列化的对象?
由于您使用的是对象而不是查询字符串参数,因此 TestObject
的属性将不会单独显示,因为对象正在封装。
具有单独的字段用于查询字符串参数。
您可以创建 custom Swagger layouts 来显示您喜欢的数据,但我建议保持原样,以符合 Swagger UI 的普遍期望。
也可以随意将两者结合起来;那也行。