Estoy usando Swashbuckle con mi proyecto .Net Core Web API. Tengo algunas solicitudes GET y POST, como de costumbre.
Aquí hay un ejemplo:
/// <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()); }Objetos usados:
/// <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; } } Y aquí está el resultado:
Lo que espero ver es un objeto deserializado en la sección "Parámetros", como vi en otras muestras de Swagger/Swashbuckle (Petstore, por ejemplo). O, al menos, algo como en la especificación OpenAPI v2 con `c.SerializeAsV2 = true;`:

Entonces, la pregunta es, ¿es posible mostrar un objeto deserializado en la sección "Parámetros"?
Dado que está utilizando un objeto y no consulta parámetros de cadena, las propiedades de TestObject no se mostrarán por separado ya que un objeto se está encapsulando.
Tener campos separados son para parámetros de cadena de consulta.
Puede crear diseños de Swagger personalizados para mostrar los datos como desee, pero le recomiendo que lo mantenga como está, para cumplir con las expectativas comunes de la interfaz de usuario de Swagger.
También siéntase libre de tener una combinación de ambos; eso también funcionaría.