Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to show request body objects in the parameters section of Swagger UI?

I am using Swashbuckle with my .Net Core Web API project. I have some GET and POST requests, as usual.

Here's an example:

/// <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());
}

Used objects:

/// <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; }
}

And here's the result: Text


What am I expecting to see is a deserialized object in "Parameters" section, as I saw in some other Swagger/Swashbuckle samples (Petstore, for example). Or, at least, something like in OpenAPI v2 specification with `c.SerializeAsV2 = true;`:

Text

So, the question is, is it possible to display a deserialized object in "Parameters" section?

like image 224
Sovasava Avatar asked Nov 02 '25 09:11

Sovasava


1 Answers

Since you’re using an object & not query string parameters, TestObject’s properties won’t be displayed separately as an object is encapsulating.

Having separate fields are for query string parameters.

You can create custom Swagger layouts to display data however you’d like but I’d recommend to keep it as it is, to fall in line with common expectations of the Swagger UI.

Also feel free to have a combination of both; that would also work.

like image 179
Ermiya Eskandary Avatar answered Nov 03 '25 22:11

Ermiya Eskandary



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!