RESTful規範1

RESTful規範

一 什麼是RESTful

REST與技術無關,表明的是一種軟件架構風格,REST是Representational State Transfer的簡稱,中文翻譯爲「表徵狀態轉移」html

二 RESTful API設計

更多看這裏:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.htmlpython

  • 錯誤處理,應返回錯誤信息,error當作key。
{
        error: "Invalid API key"
    }
  • 返回結果,針對不一樣操做,服務器向用戶返回的結果應該符合如下規範。
GET /collection:返回資源對象的列表(數組)
    GET /collection/resource:返回單個資源對象
    POST /collection:返回新生成的資源對象
    PUT /collection/resource:返回完整的資源對象
    PATCH /collection/resource:返回完整的資源對象
    DELETE /collection/resource:返回一個空文檔
  • Hypermedia API,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"
    }}

摘自:http://www.ruanyifeng.com/blog/2014/05/restful_api.htmldjango

三 基於Django實現

路由系統:json

urlpatterns = [
        url(r'^users/$', views.Users.as_view()),
        url(r'^users2/$', views.user2),

    ]

視圖函數:api

import json

    def  user2(request):
        if request.method=='GET':
            dic = {'status':200,'name': 'lqz2', 'age': 18}
            return HttpResponse(json.dumps(dic))
        elif request.method=='POST':
            dic = {'status': 200, 'msg': '修改爲功'}
            return JsonResponse(dic)

    class Users(View):
        def get(self, request):
            dic = {'status':200,'name': 'lqz', 'age': 18}
            return HttpResponse(json.dumps(dic))

        def post(self, request):
            dic = {'status': 200, 'msg': '修改爲功'}
            return JsonResponse(dic)
相關文章
相關標籤/搜索