こんばんは!
今年も後3日!!!!
もう一度掃除もしなきゃですね。
年末年始にサムネに挙げた「Wenを支える技術」という本を読んでいます。
結構難しくてまだ途中なんですが、アウトプットしながら理解していきたいと思います。
今日はその中で出てきたRESTについてまとめたいと思います!
RESTとは
RESTとは(REpresentational State Transfer)の略で、簡単に言うとWebページのシステムの作り方の一つの方法です。
ちなみにアーキテクチャスタイルとは和約で構造方式みたいな意味です。
なんのこっちゃって感じですよね。
具体的に言うと下記のような4つの原則にしたがって、Webページを作るという方法です。
- HTTPを使用する
- ステートレスなサーバーとクライアントの通信
- URIでどこにアクセスするのかわかりやすく
- CRUDを意識した作り
もう少し噛み砕いていきます。
HTTPを使用する
HTTPはサーバーとクライアントの通信規約でしたね。
やりとりの際にHTML 、microformat、ATOM、JSONなどのハイパーメディアフォーマットを使用することで、遷移しても正しく表示されるHTTPを使うのがRESTです。
ステートレスなサーバーとクライアントの通信
サーバーとクライアントの通信はステートレスに行うのがRESTです。
どういうことかというと、ステートレスの場合サーバーがやりとりの情報を記憶しません。
そのため、よく例に挙げられているのですが、ハンバーガー屋さんでの注文に例えると、
サーバー「注文をどうぞ」
クライアント「ハンバーガーを1つ」
サーバー「ハンバーガー1つですね。ドリンクはいかがいたしますか」
クライアント「コーヒーを」
サーバー「コーヒーですね。ご一緒にポテトはいかがですか」
クライアント「ポテトもください」
サーバー「かしこまりました。ポテトを用意します」
クライアント「ハンバーガーとコーヒーは!!!?????」
ってなっちゃうようです。これを解決するには、「ハンバーガーとコーヒーとポテトください」と伝える必要があります。
上記の場合だったらまだましですが、やりとりが多くなるととても無理ですよね。
なので、この部分は例えばCookieにやりとりを保存する方法を使用しています。
RESTに沿って作る部分と、そうじゃない部分を目的に合わせて上手く棲み分けすることも大切なのですね。
ちなみにステートレスの対義語はステートフルであり。やりとりを保存する様式になります。
URIでどこにアクセスするのかわかりやすく
URIとは「Uniform Resource Identifier」の略でURLやURNの総称となる言葉です。
日本語では統一資源識別子と言います。
「URL」の場合は識別子が場所。「URN」の場合は識別子が名前になっています。
簡単にまとめると、Webページを設計する際、どのページに何の役割を持たせるかをURLでわかりやすくしておきましょうと言う意味です。
例えばSNSでユーザー情報の編集をする画面なら、https://gao-sns/user-detail/editみたいな感じですね。
こうすることで自分以外の人と共同で開発するとき、非常に伝わりやすくなります。
CRUDを意識した作り
CRUDとは、「Create」「Read」「Update」「Delete」というコンピュータソフトが持つ基本動作を表しています。
これをHTTPメソッドにすると「POST」「GET」「PUT」「DELETE」になります。
初めて勉強した時、delete以外も全部同じにしてくれってめっちゃ思いました。
それらを意識して、この動作はメソッドのこれに当てはまるな。
と言うことを考えながら作るとわかりやすいWebページになりますよ。と言うことみたいです。
と言うことで今回はRESTについてまとめてみました。
自分もWebページの構築の際にはRESTを意識したいと思います。(RESTfulと言うそうです。)
正直完全には理解できていない部分もあるんですが、またアップデートしつつ深めていこうと思います。
それでは今日はこのへんで!
2020.12.29 ガオ
コメント