Aspnet Mvc 前后端分离项目手记(三)关于restful 风格Url设计
RESTful??不是新東西,簡單理解它的核心思想就是最大程度的利用http協議的一些特點,比如uri,比如請求動詞,在前后端分離的項目中會有大大的好處
,好的設計的url簡單明了,勝過詳細的說明文檔。關于介紹Restful的好文章也有很多??http://www.ruanyifeng.com/blog/2014/05/restful_api.html
看幾個不錯的restful風格的url設計,你就明白什么時restful風格了
1,豆瓣電影
https://movie.douban.com/subject/27179414/?from=showing
編號27179414的項目
編號27179414 電影的演員表??https://movie.douban.com/subject/27179414/celebrities
是不是很明了,一看url就知道他的內容
?
下面是在asp.net mvc中實踐restful 的一點總結 ,項目沒有使用webapi?
?
首先,IIS默認是禁止Delete,Put等請求的,如果沒有事先配置的話會報404
解決辦法一:在web.config中標注module節點? <modules runAllManagedModulesForAllRequests="true" runManagedModulesForWebDavRequests="true">
方法二:如果上述方法還是不奏效的話
可以直接在控制面板》》程序或功能》》啟用或關閉Windows功能中關閉除WebDev模塊
在這里,取消【WebDAV發布】的勾選就行,
啟用是路由特性, 使用restful時有時候會自定義一些路由映射, 在RouteConfig中加入? routes.MapMvcAttributeRoutes();
關于路由特性也有一些很詳細的文章??https://www.cnblogs.com/zeusro/p/RouteConfig.html
在URL中添加版本號
1 url中要有版本號? 比如? ? ?https://api.demo.com/v1/controller/action? ,? ?也就是說要設置全局的路由?
?
方法一, 添加區域,?
方法二, 在IIS添加應用程序
? ? ? 在IIS里面添加網站的時候,不直接添加,二十添加一個空文件夾,然后再在里面添加應用程序
方法三,定義全局路由
定義全局路由, 這篇文章有介紹??https://www.cnblogs.com/savorboard/p/dontnet-IApplicationModelConvention.html
?
?
?使用http動詞來表明來意
分別使用來對應增刪改查,?url使用小寫?,盡量使用名字而不是動賓短語 比如? ?獲取商品的url? ? /products? 要好于 /product/getproduct
?
post (新增)
put (修改)
delete(刪除)
get(查詢)
??
?
添加一個商品? ?/product? ? post動詞
編輯商品???/product? ? put動詞
?
刪除商品???/product? ? delete動詞
?
獲取商品列表 /products?page=1&pagesize=50? ?get動詞
獲取?ID為1的商品ID為3圖片? ?/product/1/img/3??get動詞
設置Id為1的商品價格為2? ? /product/1/setprice/2? post動詞
restful缺點很多,在實際使用過程中其實很難做到完全遵循,這個時候千萬不能生搬硬套,他并不是一個硬性的規定,只是一種風格,不用restful或者不嚴格使用都是完全沒有問題的
轉載于:https://www.cnblogs.com/wahson2019/p/10861096.html
總結
以上是生活随笔為你收集整理的Aspnet Mvc 前后端分离项目手记(三)关于restful 风格Url设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中给变量赋值时、既确定了变量
- 下一篇: Aspnet Mvc 前后端分离项目手记