首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在.net MVC Web中编写REST服务以支持多个Get端点?

如何在.net MVC Web中编写REST服务以支持多个Get端点?
EN

Stack Overflow用户
提问于 2014-05-30 23:06:25
回答 1查看 2.9K关注 0票数 1

所以我很熟悉如何写默认的Get,Post,Put,Delete

代码语言:javascript
运行
复制
//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端点w/o,必须创建一个全新的控制器?我想拿客户的元数据?我需要对routeConfig做任何更改吗?如果是这样的话,我怎么做呢?然后如何在javascript中使用新的路由呢?

代码语言:javascript
运行
复制
//GET api/customer/GetMetaData
 public string GetMetaData(){
 }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-30 23:09:41

您可以使用属性Route。此属性是在WebApi 20中添加的,您可以在方法级别使用它来定义新路由或更多路由,您使用它的方式类似于[Route("Url/route1/route1")]

使用上面的示例之一,它将如下所示:

代码语言:javascript
运行
复制
//GET api/customer/GetMetaData
[Route("api/customer/GetMetaData")]
public string Get2(){
      //your code goes here
}

如果要在类中声明几条路由,那么可以在类级别上使用RoutePrefix属性(如[RoutePrefix("url")] )。这将为Controller类中的所有方法设置一个新的基本URL。

例如:

代码语言:javascript
运行
复制
[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) { ... } 

}

注意:在上面的示例中,我展示了一个示例,其中路由允许我们设置类型约束。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23964610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档