我目前使用Jersey Framework(JAX-RS實現)來構建RESTful Web服務。項目中的Resource類已經實現了標準的HTTP操作 - GET,POST & DELETE。我想弄清楚如何從客戶端發送請求參數到這些方法。http用REST刪除
對於GET,它將位於查詢字符串中(使用@QueryParam
提取),POST將是與請求主體一起發送的名稱/值對列表(使用@FormParam
提取)。我使用HTTPClient測試了它們,並且運行良好。對於DELETE操作,我沒有在參數類型/格式上找到任何確鑿的答案。 DELETE操作是否在查詢字符串(使用@QueryParam
提取)或正文(使用@FormParam
提取)中接收參數?
在網上的大多數DELETE示例中,我觀察到使用@PathParam
註釋進行參數提取(這將從查詢字符串中再次獲得)。
這是將參數傳遞給DELETE方法的正確方法嗎?我只想在這裏小心一點,以免違反任何REST原則。
'?wipeData =真',就是查詢字符串的濫用。 rfc 3986第3.4節聲明「查詢組件包含非分層數據,與路徑組件(第3.3節)中的數據一起用於標識URI的方案和命名權限(如果有)的範圍內的資源。」 有點令人困惑的是rfc 7231第4.2.1節提到的「例如,基於Web的內容編輯軟件在查詢參數中使用操作是很常見的,例如」page?do = delete「」 我想說的是也不正確。 – aaaaaa 2016-09-07 04:55:07