所以我熟悉如何写一个默认的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]string value){}
//DELETE api/customer/id
public void Delete(int id){}
但是,我怎么会写/再添获取端点W 0不必创建一个全新的控制器? 我要抢客户的元数据? 做我需要做的routeConfig什么变化? 如果是的话我该怎么做? 然后我将如何在JavaScript中使用新的路线?
//GET api/customer/GetMetaData
public string GetMetaData(){
}
您可以使用属性路线 。 在20的WebAPI加入这个属性,你可以在方法级别使用它来定义新的路线或多个路线,并且使用它喜欢的方式[Route("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) { ... }
}
注:在上面的例子中我发现其中路线使我们能够定式的约束,以及一个例子。
文章来源: How do I write REST service to support multiple Get Endpoints in .net MVC Web API?