2013-05-20 39 views
0

社區接受的使用django構建api的方式是什麼?使用/ xxx/method /格式或使用PHP語法的格式?Django api api/add/2/+/3 vs api/method = add&expression = 2 + 3

感謝

+0

爲什麼你需要指定'add'和'+'?爲什麼不'api/add/2/3'或'api/2 + 3'? – Eric

+0

你的變化是有道理的,然而內容是在飛行中,這不是問題的主要觀點,它可以很容易地是xxx/fff vs method = xxx&value = fff –

+0

怎樣將所有數據作爲json來準備做更復雜的計算呢? – yedpodtrzitko

回答

1

沒有什麼具體的關於在Django製作的API。 REST原則適用於您使用的任何Web框架。

總之,有4個主要的HTTP動詞:

GET - for listing resources or retrieving details 
POST - for creating resources 
PUT - for replacing/updating resources 
DELETE - for deleting resources 

與GET查詢字符串應該被用於搜索查詢。例如:

  1. Wolfram Alpha的使用URL編碼的字符串用於查詢數學表達式爲:https://www.wolframalpha.com/input/?i=2%2B3
  2. 谷歌將使用URL編碼字符串,它的搜索查詢:https://www.google.com.au/search?q=2%2B3

如果你的數學表達式創建新資源,它們應該在POST正文中發送,通常是以url編碼的或者以JSON格式的更復雜的資源(如XML)發送。同樣,PUT用於更新,DELETE用於刪除。您需要創建/更新/刪除的資源應通過其URL來標識。

如果您想要支持多種格式(例如XML,JSON)或同一資源的多種語言,則應使用Content Negotiation。此外,強烈建議遵循HATEOAS原則,在服務中使用的所有URL都應在服務本身中發現,而不必從單獨的文檔中推斷出來。