Arm*_*est 2 c# rest asp.net-mvc http-get asp.net-web-api
我有一个名为PIM(产品信息管理器)的数据模型,它要求我为每个请求传递公司AppId.因此,如果我想获得所有产品,我将通过公司AppId和资源ID.
我正在尝试以干净的方式构建我的REST端点,我想出了这个:
http://api.example.com/pim/44/products/ -- Gets all products in company 44
http://api.example.com/pim/44/products/123 -- Get product 123 in company 123
Run Code Online (Sandbox Code Playgroud)
这是实现这个的最佳方式吗?
我正计划制作我的默认控制器 pim/{appId}/{controller}/{id}
如果我这样做,我会遇到我的MVC路线问题吗?如何在我的GET方法中访问{appId}标记?
您可以按照描述获得路线并使用它
routes.MapHttpRoute(
name: "Default",
routeTemplate: "pim/{appId}/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
在您的控制器中,您将拥有以下方法:
public class ProductsController : ApiController
{
public Product Get(int appId, int id) { ... }
public List<Product> Get(int appId) { ... }
}
Run Code Online (Sandbox Code Playgroud)
由于参数名称(appId,id)与路由参数匹配,因此ASP.NET Web API应在调用操作时将URL值绑定到参数.
| 归档时间: |
|
| 查看次数: |
2167 次 |
| 最近记录: |