Web API属性路由URI问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web API属性路由URI问题相关的知识,希望对你有一定的参考价值。

我想通过这个URI路由我的API

localhost/api/ServiceA/1234

其中isbn = 1234

目前我正在从下面提到的UrI中检索json

localhost/1234

其中1234是伊斯兰

如何使用以下uri获得相同的json结果?

localhost/api/ServiceA/1234

目前我使用上述URL获取null

使用以下代码使用属性路由我得到结果

我有一个API控制器

public class ServiceAController : ApiController
{
    [Route("api/ServiceA/{isbn}")]
    public Book GetBook(string isbn)
    {
        using (AppDbContext db = new AppDbContext())
        {
            var query = from b in db.Books
                        where b.ISBN == isbn && b.Source == "Book Store 1"
                        select b;
            return query.SingleOrDefault();
        }
    }
}
答案

看起来你忘了为你的方法保留[HttpGet]属性。

例如:

[Route("api/ServiceA/{isbn}")]
[HttpGet]
public Book GetBook(string isbn){
    // ...
}

以上是关于Web API属性路由URI问题的主要内容,如果未能解决你的问题,请参考以下文章

Web-API 的路由配置

Web Api 属性路由中的可选参数

Web API中的路由——基本路由

C# owin web api 路由索引页面

我应该输入什么URI来运行我的Web API2?

超级有用的9个PHP代码片段