Base solution for your next web application
Open Closed

PUT displays as POST on Swagger UI? #3871


User avatar
0
fguo created

I create a service "EditCustomer", which is very similar as "EditPerson" in PhoneBook example. It works fine, but the API shows on Swagger UI as POST (green bar), instead of PUT (brown bar). What did I miss?

The only thing different is that, the "Person" entity inherent from FullAuditedEntity and IMustHaveTenant, but my "Customer" entity inherent from Entiy only. Is that the reason? If so, how do I work around it?

Thanks,

Markdown is supported
Copy & paste or drag & drop images (max 30 MB per image)

6 Answer(s)
  • User Avatar
    0
    ismcagdas created
    Support Team

    Hi @ fguo,

    Can you try to change your metod name to UpdateCustomer and see if it is displayed as PUT ?

    Markdown is supported
    Copy & paste or drag & drop images (max 30 MB per image)
  • User Avatar
    0
    fguo created

    It does the trick! Thanks!

    Markdown is supported
    Copy & paste or drag & drop images (max 30 MB per image)
  • User Avatar
    0
    ismcagdas created
    Support Team

    Great :)

    Markdown is supported
    Copy & paste or drag & drop images (max 30 MB per image)
  • User Avatar
    0
    alexanderpilhar created

    Is there a way to make swagger map actions/methods that start with "Edit" to PUT? Some configuration option maybe? I can't find any information on that.

    I started working with AspNetZero by following your step-by-step-guide using "Edit" all the time. I just encountered the fact that swaggers maps them all to POST. Changing every action/method to start with "Update" is quite some task at the point where i am now ...

    Markdown is supported
    Copy & paste or drag & drop images (max 30 MB per image)
  • User Avatar
    0
    aaron created
    Support Team

    From the ASP.NET Core documentation's Application Services as Controllers section:

    You can use any ASP.NET Core attributes to change the HTTP methods or routes of the actions. This requires you to add a reference to the Microsoft.AspNetCore.Mvc.Core package.

    [HttpPut]
    public async Task EditCustomer(EditCustomerDto input)
    

    Or you can do it by convention: https://github.com/aspnetboilerplate/aspnetboilerplate/issues/2939

    Markdown is supported
    Copy & paste or drag & drop images (max 30 MB per image)
  • User Avatar
    0
    alexanderpilhar created

    Thanks aaron :D I did try to use the attributes but couldn't figure out which reference I was missing - thank you very much for pointing it out!

    Markdown is supported
    Copy & paste or drag & drop images (max 30 MB per image)