我正在爲我的web應用程序設計API,而且我們的內容相當複雜。例如,您可以擁有包含多個子對象(如標籤,多個獨立內容區域等)的wiki頁面。使用JSON作爲API請求參數的格式(爲我的web應用程序設計API)
我不想處理複雜的命名參數,如tag_N或tag []。
我還想到我們的對象可以完美地表達爲JSON。事實上,這是我們的迴應格式。如果您執行GET,您將收到JSON格式的對象。
是否有必要在JSON中指定對象的POST和PUT主體?例如,像這樣:
{
'name' : 'My Page',
'body' : 'Some page body',
'tags' : ['tag1', 'tag2', 'tag3']
}
,而不是
name=My%20Page&body=Some%20page%20body&tag[]=tag1&tag[]=tag2&tag[]=tag3
這是一個非常簡單的例子。在許多情況下,我們有複雜的對象與數組的子對象,他們本身也包含子對象。使用JSON描述相當簡單,但查詢字符串樣式參數非常困難。
所以,主要問題是:如果我們要求POST正文是一個JSON字符串,那是不合理的嗎?它超出了HTTP API的規範嗎?作爲一名API消費者的作者,您是否會因爲這樣的需求而被API拖延?