C# 如何编写REST服务以支持.net MVC Web API中的多个Get端点?
因此,我熟悉如何编写默认的Get、Post、Put和DeleteC# 如何编写REST服务以支持.net MVC Web API中的多个Get端点?,c#,asp.net-web-api,C#,Asp.net Web Api,因此,我熟悉如何编写默认的Get、Post、Put和Delete //GET api/customer public string Get(){} //GET api/customer/id public string Get(int id){} //POST api/customer public void Post([FromBody]string value){} //PUT api/customer/id public void Put(int id, [FromBody]str
//GET api/customer
public string Get(){}
//GET api/customer/id
public string Get(int id){}
//POST api/customer
public void Post([FromBody]string value){}
//PUT api/customer/id
public void Put(int id, [FromBody]string value){}
//DELETE api/customer/id
public void Delete(int id){}
但我如何编写并添加另一个Get端点,而不必创建一个全新的控制器?我想获取客户的元数据?我需要对routeConfig进行任何更改吗?如果是这样,我该怎么做?那么我将如何使用javascript中的新路由呢
//GET api/customer/GetMetaData
public string GetMetaData(){
}
您可以使用属性Route。此属性是在WebApi 20中添加的,您可以在方法级别使用它来定义新路由或多个路由,其使用方式类似于
[路由(“Url/route1/route1”)]
:
使用上面的一个示例,它将如下所示:
//GET api/customer/GetMetaData
[Route("api/customer/GetMetaData")]
public string Get2(){
//your code goes here
}
如果要在类中声明多个路由,则可以在类级别使用RoutePrefix属性,如[RoutePrefix(“url”)]
。这将为控制器类中的所有方法设置一个新的基URL
例如:
[RoutePrefix("api2/some")]
public class SomeController : ApiController
{
// GET api2/some
[Route("")]
public IEnumerable<Some> Get() { ... }
// GET api2/some/5
[Route("{id:int}")]
public Some Get(int id) { ... }
}
[RoutePrefix(“api2/some”)]
公共类控制器:ApiController
{
//买些api2/一些
[路线(“”)
公共IEnumerable Get(){…}
//获取api2/some/5
[路由(“{id:int}”)]
公共部分获取(int-id){…}
}
注意:在上面的示例中,我展示了一个Route允许我们设置类型约束的示例
谢谢就这样。[路由(“api/customer/GetMetaData”)]。我在谷歌搜索“多个端点”,而我本应该在谷歌上搜索路由属性。