1. 程式人生 > >django rest framework 之 版本

django rest framework 之 版本

一、前言

1、版本的重要性

RESTful 規範中,有關版本的問題,用restful規範做開放介面的時候,使用者請求API,系統返回資料。但是難免在系統發展的過程中,不可避免的需要新增新的資源,或者修改現有資源。因此,改動升級必不可少,但是,作為平臺開發者,應該知道:一旦你的API開放出去,有人開始用了,平臺的任何改動都需要考慮對當前使用者的影響。因此,做開放平臺,從第一個API的設計就需要開始API的版本控制策略問題,API的版本控制策略就像是開放平臺和平臺使用者之間的長期協議,其設計的好壞將直接決定使用者是否使用該平臺,或者說使用者在使用之後是否會因為某次版本升級直接棄用該平臺。

2、定義版本

怎麼定義版本協議,前端後端怎麼協調。有以下幾種方式:

  • 請求頭中定義
    GET /something/ HTTP/1.1
    Host: example.com
    Accept: application/json; version=1.0  #版本為1.0
  • URL中定義
    URL: example.com/v1.0/  # 版本為1.0
    GET /1.0/something/ HTTP/1.1
    Host: example.com
    Accept: application/json
  • 子域名中定義
    GET /something/ HTTP/1.1
    Host: v1.example.com
    Accept: application/json
  • HttpReqeust引數傳遞
    GET /something/?version=0.1 HTTP/1.1
    Host: example.com
    Accept: application/json