邮差 - 发现多个与Web Api中的请求匹配的操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了邮差 - 发现多个与Web Api中的请求匹配的操作相关的知识,希望对你有一定的参考价值。

我有这个webapi2控制器:

public class HomesController : ApiController

我创建了一个这样的自定义动作:

[Route("api/Homes/GetDetails")]
[HttpGet]
public IHttpActionResult GetDetails(string id)
{
    var x = db.Homes.Where(b => b.HomeID == id).Select(b => new { Description = b.Description, FacebookLink = b.FacebookLink , InstagramLink = b.InstagramLink });

    if (x == null)
    {
        return NotFound();
    }

    return Ok(x);
}

我在Postman中导航以使用以下URL测试此操作:

http://localhost:59381/api/Homes/GetDetails/TEST

但是我收到了错误:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 

我已将此添加到webapiconfig:

 config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = System.Web.Http.RouteParameter.Optional }
        );

任何人都可以帮我如何调用此动作并在Postman中测试它?

答案

将属性路由更改为以下内容:

 [Route("api/Homes/GetDetails/{id}")]

它应该有所帮助。

以上是关于邮差 - 发现多个与Web Api中的请求匹配的操作的主要内容,如果未能解决你的问题,请参考以下文章

在 Web Api 中找到多个与请求匹配的操作

在 Web Api 中找到多个与请求匹配的操作

Web API 路由 - 找到与请求匹配的多个操作

对API的Golang POST请求返回400,而与e的请求相同。 G。邮差返回200

报错:ASP.NET Web API中找不到与请求匹配的HTTP资源

Web Api 属性路由与 POST 请求不匹配