我的HTTP API應用程序提供了一些通過名稱標識的資源。因此,URL被構建爲如下:可以請求更改URL嗎?
/path/to/resources/<name>
例如:
/path/to/resources/my_resource
的資源可以使用PUT操作進行更新。也可以使用這種更新來重命名資源。
PUT /path/to/resources/my_resource
{"name": "new_name", <other properties>}
響應:
HTTP/1.1 204 No content
其結果是,更新後的資源現在正在一個新的URL訪問:
GET /path/to/resources/new_name
響應:
HTTP/1.1 200 OK
{"name": "new_name", <other properties>}
舊的URL不再有效:
GET /path/to/resources/my_resource
響應:
HTTP/1.1 404 Not found
是這樣的行爲是否正確? PUT操作是否應該使用新的URL返回Location
標題?是否可以將Location
標題返回204 No content
狀態?
寫了這個問題後,我發現另一個頗爲相似:REST API Design : Is it ok to change the resource identifier during a PUT call? 接受的答案是,它是允許的,但不推薦。儘管如此,仍然不知道Location
標題。
對於什麼是允許或不允許,沒有硬性規定。設置'Location'標題聽起來像個好主意。 – 2016-03-07 13:34:20
聽起來像是我的移動操作(RFC 4918)。 –