WebAPI:使用 Route 属性关键字有什么好处
WebAPI: What is the advantage of using Route attribute keyword
[GET("productid/{id?}")]
[GET("particularproduct/{id?}")]
[GET("myproduct/{id:range(1, 3)}")]
public HttpResponseMessage Get(int id)
{}
[DELETE("remove/productid/{id}")]
[DELETE("clear/productid/{id}")]
[PUT("delete/productid/{id}")]
public bool Delete(int id)
{
if (id > 0)
return _productServices.DeleteProduct(id);
return false;
}
文章展示了我们可以使用http very来创建路由。如果它是正确的,那么为什么要使用 Route[] 属性关键字来定义动作路由或属性路由?
使用 Route[] 属性关键字而不是使用 http 动词定义路由有什么优势?
请指导我。谢谢
HTTP 动词本身在 web api 中用作路由,但如果这还不够,并且您希望为您的资源使用自己的路由,则使用 Route[] 属性。在 SO 中查看此问题 url。如果使用 HTTP 动词来检索此问题 URL 就像
https://whosebug.com/questions/get/44454705
但是 SO 使用 Route 属性通过删除 url 中的 get 并在 url
中传递问题 header 来使 URL 更加清晰
更新:获取以下网络 api 控制器
public class QuestionController: ApiController
{
public string Get(int id)
{
return "";
}
[Route("questions/{id}/{question}")]
public string GetRoutedQuestion(int id)
{
return "";
}
}
所以在上面的网络 api 控制器中调用 Get 方法你的 url 会像
yourdomain/api/question/get/1
此处 api 由于 web api 路由配置文件的默认路由规则而添加域后。
但是要调用 GetRoutedQuestion,您的 url 将是
yourdomain/question/1/question-text
如果您喜欢以前的 url,您可以坚持使用 HTTP 动词,但如果您想自定义 url,则必须使用属性路由或路由配置文件中的自定义路由。
[GET("productid/{id?}")]
[GET("particularproduct/{id?}")]
[GET("myproduct/{id:range(1, 3)}")]
public HttpResponseMessage Get(int id)
{}
[DELETE("remove/productid/{id}")]
[DELETE("clear/productid/{id}")]
[PUT("delete/productid/{id}")]
public bool Delete(int id)
{
if (id > 0)
return _productServices.DeleteProduct(id);
return false;
}
文章展示了我们可以使用http very来创建路由。如果它是正确的,那么为什么要使用 Route[] 属性关键字来定义动作路由或属性路由?
使用 Route[] 属性关键字而不是使用 http 动词定义路由有什么优势?
请指导我。谢谢
HTTP 动词本身在 web api 中用作路由,但如果这还不够,并且您希望为您的资源使用自己的路由,则使用 Route[] 属性。在 SO 中查看此问题 url。如果使用 HTTP 动词来检索此问题 URL 就像 https://whosebug.com/questions/get/44454705
但是 SO 使用 Route 属性通过删除 url 中的 get 并在 url
中传递问题 header 来使 URL 更加清晰更新:获取以下网络 api 控制器
public class QuestionController: ApiController
{
public string Get(int id)
{
return "";
}
[Route("questions/{id}/{question}")]
public string GetRoutedQuestion(int id)
{
return "";
}
}
所以在上面的网络 api 控制器中调用 Get 方法你的 url 会像
yourdomain/api/question/get/1
此处 api 由于 web api 路由配置文件的默认路由规则而添加域后。
但是要调用 GetRoutedQuestion,您的 url 将是
yourdomain/question/1/question-text
如果您喜欢以前的 url,您可以坚持使用 HTTP 动词,但如果您想自定义 url,则必须使用属性路由或路由配置文件中的自定义路由。