File: Controllers\ApiExplorerResponseTypeWithApiConventionController.cs
Web Access
Project: src\src\Mvc\test\WebSites\ApiExplorerWebSite\ApiExplorerWebSite.csproj (ApiExplorerWebSite)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using Microsoft.AspNetCore.Mvc;
 
namespace ApiExplorerWebSite;
 
[ApiController]
[Route("ApiExplorerResponseTypeWithApiConventionController/[Action]")]
[ApiConventionType(typeof(DefaultApiConventions))]
public class ApiExplorerResponseTypeWithApiConventionController : Controller
{
    [HttpGet]
    public Product GetProduct(int id) => null;
 
    [HttpGet]
    public Task<ActionResult<Product>> GetTaskOfActionResultOfProduct(int id) => null;
 
    [HttpGet]
    public IEnumerable<Product> GetProducts() => null;
 
    [HttpPost]
    [Produces("application/json")]
    [ProducesResponseType(202)]
    [ProducesResponseType(403)]
    public IActionResult PostWithConventions() => null;
 
    [HttpPost]
    [Produces("application/json", "text/json")]
    public IActionResult PostWithProduces(Product p) => null;
 
    [HttpPost]
    public Task<IActionResult> PostTaskOfProduct(Product p) => null;
 
    [HttpPut]
    public Task<IActionResult> Put(string id, Product product) => null;
 
    [HttpDelete]
    public Task<IActionResult> DeleteProductAsync(object id) => null;
 
    [HttpPost]
    [ApiConventionMethod(typeof(CustomConventions), nameof(CustomConventions.CustomConventionMethod))]
    public Task<IActionResult> PostItem(Product p) => null;
}
 
public static class CustomConventions
{
    [ProducesResponseType(302)]
    [ProducesResponseType(409)]
    public static void CustomConventionMethod() { }
}