Skip to content

Instantly share code, notes, and snippets.

@hypermkt
Created June 19, 2018 15:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hypermkt/2536ac90b006bc1042d01eab0a3cae88 to your computer and use it in GitHub Desktop.
Save hypermkt/2536ac90b006bc1042d01eab0a3cae88 to your computer and use it in GitHub Desktop.

リソースの複数削除

実装方法

パターン1: DELETEメソッドで対象IDを複数個指定

DELETE /resources?ids=recordId1,recordId2

Request

無し

Response

204 No Content

パターン2: POSTメソッド で対象IDを複数個指定

POST /resources/delete

Request

[
	"recordId1",
	"recordId2"
]

Response

200 OK

[
	"recordId1",
	"recordId2"
]

メリットデメリット

パターン1: DELETEメソッドで対象IDを複数個指定

  • メリット
    • 削除することがHTTPメソッドから明確
  • デメリット
    • RESTfulの流儀から外れる

パターン2: POSTメソッド で対象IDを複数個指定

  • メリット
    • 無い?
  • デメリット
    • 作成用メソッドなのに削除をしていることに違和感

考察

 RESTful APIにおいてリソースの複数削除の設計思想に無い。どちらの手法も基本的には例外である。  個人的な考えとしては、パターン1の方がメソッドがDELETEなので削除することが明示的で分かりやすい。RESTfulの思想から外れているが、利用するイメージもしやすく利用しやすいのでパターン1の方が良い。

参考

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment