現在、VM等のリソースを操作するAPIの開発を行なっています。
VMの電源をOn/OFF/RestartするAPIとして、以下のようなURLを設計しました。
- /vm/{vm_name}/start
- /vm/{vm_name}/stop
- /vm/{vm_name}/restart
しかし、APIの命名規則について調べたところ、様々なサイトでAPIには動詞を含めてはいけない、APIの意図が不明確になるといった記述に出会いました。
- https://qiita.com/mserizawa/items/b833e407d89abd21ee72
- https://medium.com/@Akitsuyoshi/rest-api%E3%81%AE%E5%A7%8B%E3%82%81%E6%96%B9-%E5%90%8D%E5%89%8D%E3%81%AE%E4%BB%98%E3%81%91%E6%96%B9-2b5c86972fc0
これらのページの言うことも最もで、例えば/startにGETするってなんだ?と言う自分の疑問にも符合するものでした。
一方で、では今回のケースでは正しい命名は何か?がわかりません。やっていることはVMのステータスの更新ですので、以下のようなURLに、以下のようなbodyをPUT
するのが正しいのでは?と思いましたが、果たして客観的に見て、リソースに対する処理の意図が明確であるか確証が持てません。
- /vm/{vm_name}/status
{ "status": "UP" }
リソースのステータスを更新するようなAPIでは、どのような命名をするべきでしょうか。上記のような例で良いのか、あるいはより良い例がある場合はご教授いただけると幸いです。
あなたの回答
tips
プレビュー