MVC的Web API,得到子项目(MVC Web API, get sub items)

2019-09-17 04:34发布

我有两个表的数据库。 国家和城市,每个城市都有一个关系到国家spesific。

在我的ASP.Net的Web API,我可以通过一个GET请求来获取国家名单http://example.com/api/countries运行CountriesController。 而且我可以得到有关国家的详细信息http://example.com/api/countries/1 。

如果我想所有城市的名单,一个国家的REST查询网址应该是http://example.com/api/countries/1/cities ? 而对于一个城市的细节http://example.com/api/countries/1/cities/1

我怎样才能在ASP.Net的Web API做到这一点?

Answer 1:

这个怎么样,在规定的global.asax.cs像这样一个额外的API路线:


routes.MapHttpRoute(
    name: "CityDetail",
    routeTemplate: "api/countries/{countryid}/cities/{cityid}",
    defaults: new { controller = "Cities" }
);

然后定义像这样一个新的CitiesController:


public class CitiesController : ApiController
{
    // GET /api/values
    public IEnumerable Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET /api/values/5
    public string Get(int countryId, int cityid)
    {
        return "value";
    }

    // POST /api/values
    public void Post(string value)
    {
    }

    // PUT /api/values/5
    public void Put(int countryId, int cityid, string value)
    {
    }

    // DELETE /api/values/5
    public void Delete(int countryId, int cityid)
    {
    }
}

不用说,你可能想提高控制器实现了一下:)



文章来源: MVC Web API, get sub items