django-rest-framework

restful規範:
  API與用戶的通訊協議,老是使用HTTPs協議
- URL

https://api.example.com                         儘可能將API部署在專用域名(會存在跨域問題)html

https://example.org/api/                        API很簡單python

 - url名詞
  路徑,視網絡上任何東西都是資源,均使用名詞表示(可複數)django

https://api.example.com/v1/zoosjson

https://api.example.com/v1/animalsapi

https://api.example.com/v1/employees跨域

   - 版本(v1/v2/……)
- 提交方式
    GET: 獲取
    POST: 添加
    PUT: 更新
    DELETE:刪除
   - status
    2xx:OK
    3xx:重定向
    4xx:用戶發出的請求有錯誤
    5xx:服務器發生錯誤
    更多看這裏:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
    中文看這裏:http://www.cnblogs.com/yifugui/p/8416123.html
   - Hypermedia link
    RESTful API最好作到Hypermedia,即返回結果中提供連接,連向其餘API方法,使得用戶不查文檔,也知道下一步應該作什麼。
{"link": {
  "rel":   "collection https://www.example.com/zoos",
  "href":  "https://api.example.com/zoos",
  "title": "List of zoos",
  "type":  "application/vnd.yourformat+json"
}}
   - 錯誤詳細
  - 返回結果,針對不一樣操做,服務器向用戶返回的結果應該符合如下規範。
GET /collection:返回資源對象的列表(數組)
GET /collection/resource:返回單個資源對象
POST /collection:返回新生成的資源對象
PUT /collection/resource:返回完整的資源對象
PATCH /collection/resource:返回完整的資源對象
DELETE /collection/resource:返回一個空文檔

基於Django實現

  路由系統:數組

1
2
3
urlpatterns  =  [
     url(r '^users' , Users.as_view()),
]

  CBV視圖:服務器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from  django.views  import  View
from  django.http  import  JsonResponse
 
class  Users(View):
     def  get( self , request,  * args,  * * kwargs):
         result  =  {
             'status' True ,
             'data' 'response data'
         }
         return  JsonResponse(result, status = 200 )
 
     def  post( self , request,  * args,  * * kwargs):
         result  =  {
             'status' True ,
             'data' 'response data'
         }
         return  JsonResponse(result, status = 200

 更多查看:http://www.cnblogs.com/wupeiqi/articles/7805382.htmlrestful

相關文章
相關標籤/搜索