【问题标题】:How to share ActionName between webapi and client?如何在 webapi 和客户端之间共享 ActionName?
【发布时间】:2022-02-02 19:14:55
【问题描述】:

有没有办法在客户端和 api 之间共享 webapi ActionNames? 我尝试过这样的事情:

public static class Orders
{
    public const string GetAllOrders = "GetOrders";
    public const string GetUserOrders = "GetUserOrders";
    public const string GetCustomerOrders = "GetCustomerOrders";
}

然后在api中:

    [HttpGet]
    [ActionName(Orders.GetAllOrders)]
    public IActionResult GetAllOrders()
    {

        return BadRequest("No records found");
    }

    [HttpGet]
    [ActionName(Orders.GetUserOrders)]
    public IActionResult GetUserOrders(int id)
    {
        return BadRequest("No records found");
    }

    [HttpGet]
    [ActionName(Orders.GetCustomerOrders)]
    public IActionResult GetCustomerOrders(int id)
    {
        return BadRequest("No records found");
    }

但是我得到了这个错误:

Swashbuckle.AspNetCore.SwaggerGen.SwaggerGeneratorException: Conflicting method/path combination "GET api/Order" for actions - LPD_Api.Controllers.OrderController.GetAllOrders (LPD_Api),LPD_Api.Controllers.OrderController.GetUserOrders (LPD_Api),LPD_Api.Controllers.OrderController.GetCustomerOrders (LPD_Api). Actions require a unique method/path combination for Swagger/OpenAPI 3.0. Use ConflictingActionsResolver as a workaround

任何提示如何共享名称以避免客户端命名错误?

【问题讨论】:

  • 你试过 [HttpGet(Orders.GetCustomerOrders)] 吗?
  • 感谢您的帮助 - 它就像一个魅力 :)
  • 您也可以使用 nameof 获取名称。 public const string GetAllOrders = nameof(Controller.GetAllOrders); 在这种情况下,即使有人重命名方法,您也将拥有最新的名称

标签: c# .net blazor asp.net-core-webapi


【解决方案1】:

感谢Serhii 我解决了这样的问题:

    [HttpGet(Orders.GetAllOrders)]
    public IActionResult GetAllOrders()
    {
        return BadRequest("No records found");
    }

    [HttpGet(Orders.GetUserOrders)]
    public IActionResult GetUserOrders(int id)
    {
        return BadRequest("No records found");
    }

    [HttpGet(Orders.GetCustomerOrders)]
    public IActionResult GetCustomerOrders(int id)
    {
        return BadRequest("No records found");
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 2011-01-30
    • 2010-12-26
    相关资源
    最近更新 更多