我有两个表的数据库。 国家和城市,每个城市都有一个关系到国家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做到这一点?
这个怎么样,在规定的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)
{
}
}
不用说,你可能想提高控制器实现了一下:)