質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Q&A

解決済

2回答

914閲覧

(URL設計)HTTPメソッドとURIの関係を理解したい

alyoalyoalyo

総合スコア12

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

0グッド

0クリップ

投稿2018/09/14 01:08

編集2018/09/14 01:10

##背景

「Webを支える技術」という本の、URI設計の話を読んでいた時の話。
「URIは名詞」として成り立ち、HTTPメソッドと目的語・動詞の関係になるように
設計すべしという指針が紹介されておりました。

###例

HTTPメソッドURI意味
GETusers/1ユーザ一覧の/会員番号1の情報 を取得(GET)してくれ

上記の例だと、指針に沿っており、理解出来ます。

##でもちょっと待って欲しい

しかしながら下記の例だと、どうにも納得いきませんでした。

HTTPメソッドURI意味
GETusers/1/editユーザ一覧の/会員番号1の/編集 を取得してくれ

editとGETは動詞、動詞の関係になってしまうように思えて
設計指針からは外れているように思えます。

###仮説
ググりつつ、仮説をいくつか考えてみました。

  • (1)HTTPメソッドは数が少ないので、表現の幅を広げるために動詞+動詞にした

https://dev.classmethod.jp/etc/web-api_rest-api_url-design/

  • (2)リソースが未確定ならばOK(リソースの状態が確定していないから?)
  • (3)editの名詞系として使っている

###相談
正しい理解は↑の3つに含まれているのか、
あるいは全く別の理解の仕方があるのでしょうか?
詳しい方、教えていただけると嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

users/1 というのが何かしらのコマンドの省略形であると捉えれば、整理できて意味が通ります。

HTTPメソッドURI意味
GETusers/1ユーザ一覧の/会員番号1の(/内容を表示する)ページを 取得
GETusers/1/editユーザ一覧の/会員番号1の/編集をするページを 取得

一般的に 1行目のようなパターンは、users/1/view や users/1/detail のように、本来は何かしらのコマンド(様のもの)がくっついているのを省略していると解釈されます。
※標準的な機能なので、何も指定しなければそのコマンドが指定されているものと暗黙に処理される

HTTPメソッドとしての GET は、「~を取得する」という意味通りなので、それによって返ってくるものが何かは実体によって異なってきます。Web ページ(HTML)なのか、実データ(JSON 等)なのか、あるいは Excel ファイルなのかは分かりませんが、とにかく「GET」であれば何かしらのデータが帰ってくる、と期待すればよいようになっています。

投稿2018/09/14 01:27

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

alyoalyoalyo

2018/09/14 01:57 編集

ありがとうございます!しっくりきました。 tacsheavenさんには前回も助けて頂いて、感謝のかぎりです。
guest

0

個人的には、「編集画面を取得する」というように理解しています。

edit_screenとすると長くて煩雑なので、editに短縮しているという解釈です。

投稿2018/09/14 01:15

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

alyoalyoalyo

2018/09/14 01:19

早速のご回答ありがとうございます。 ある名詞の短縮系ということですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問