ASP.NET 通过 Postman 核心调用 API

ASP.NET Core Invoke API via Postman

所以我在我的本地机器上有这个 ASP.NET 核心,我已经安装了先决条件,在本地 运行 应用程序之后,网络浏览器的响应是正确的,没有找到它。

好的,我正在尝试通过 Postman 调用此 API,但我无法确定为什么我无法访问它,尽管我已经检查了路由。

下面是示例模板

[HttpGet]
    [Route("Details")]
    public async Task<IActionResult> GetDetails(string value = null)
    {
        var response = new ListModelResponse<SomeModel>() as IListModelResponse<SomeModel>;

        try
        {
            response.Model = await GetDetailsRepository
                    .GetDetailsSS(value)
                    .Select(item => item.ToViewModel())      
                    .OrderBy(item => item.Name)
                    .ToListAsync();
        }
        catch (Exception ex)
        {
            response.DidError = true;
            response.ErrorMessage = ex.Message;
        }

        return response.ToHttpResponse();
    }

并且在 visual studio 的 application insights 中,我可以看到它正在调用 API 但它似乎无法通过。 Check this insights snippet

其他API的工作正常,似乎我错过了一些我现在无法弄清楚的东西。

路由我有这个。

[Route("api/[controller]")]

我还检查了令牌,在解析它时,我获得了访问此 API 所需的信息。

谢谢小伙子们!

请求中似乎没有控制器的名称url。

api/[控制器]/详细信息?value=CAT...

此错误是由于请求中存在不正确的 url。正确的 URL 必须是 https://localhost:44309/api/your-controller-name/Details?value=CAT

即。如果控制器名称是 ProductsController,则 URL 必须是 https://localhost:44309/api/Products/Details?value=CAT

[Route("api/[controller]")]
public class ProductsController : Controller
{
   [HttpPost("Details")]     
    public async Task<IActionResult> GetDetails(string value = null)
    {
        ...
    }
}