Kogawa

テクノロジーに少し偏る雑記ブログ

RESTfulなURL設計について簡単にまとめて見ました

投稿日:

どうも、こがわです。

RESTfulなURL設計について、以前に学習したものを復習がてらまとめて見たいと思います。

Webサービスを開発する際、URL設計はとても大事です。
サービスを構成するシステムが変わったら、今までユーザーが認識していたURLが突然使えなくなった!というのは問題ですよね。。?
そうならないためにも永続的にアクセス出来るようURLを設計する必要があるのです。

RESTfulとは

まず、RESTfulとは「RESTの規約にしたがっていてRESTらしいこと」を意味します。

ではRESTとは何かですが、Webのアーキテクチャスタイルの一つです。

アーキテクチャスタイルとは、システム開発時にただ闇雲に開発するのではなく、スタイルに則って開発しましょうと言うものです。近似で言うとRailsのMVCなんかが当てはまりますね。

URL設計におけるREST

RESTではリソースという重要な概念があります。

そして、RESTはリソースを HTTPメソッド(GET, POST, PUT, PATCH, DELETE)で操作します。

具体例を上げてみます。

例: ユーザーをCRUD(Create, Read, Update, Delete)する場合

見ての通り、同じURL http://example.com/users/3 が出ていますが、HTTPメソッドで振る舞いが変わっています。

このようにURLはリソースを表し、振る舞いはHTTPメソッドで表す状態をRESTfulなURL設計と言えます。

さらに説明しますと、例えば、userはposts(記事)を複数持っていると仮定します。
この時、userが持っている記事を操作する際のURLは以下となります。

基本的にリソースを表現する場合は複数形を用います。
これは一覧を取得なら users 、idを指定して特定のユーザーを取得する場合は user という風にしてしまうと、1つのリソースに複数の状態が出来てしまい少し複雑になってしまうのを回避するためですね。

また、リソースをフィルタ、検索等で絞り込む場合はリクエストパラメータを用います。

例えばユーザーを取得する際に男性のみ取得したい場合、

のようにリソースの状態をリクエストパラメータで限定することが出来ます。

参考

-テクノロジー
-,

執筆者:

関連記事

no image

Digest認証設定方法 – セキュアなユーザー認証を用いて盗聴/改竄を防ごう!

どうも、こがわです。お題の通りなのですが、今回は、Digest認証を用いて認証を突破しない限りページの閲覧ができないようにする方法を説明します。 ユーザー認証は、管理画面などによく用いられていますね。 …

Zapierを使わずRaspberry Pi 3でTogglのタイムトラッキングデータをGoogle Calendarへ同期するようにした話

どうも、こがわです。 以前にZapierを使ってGoogleカレンダーとTogglを同期!行動を可視化して自制を促進しよう!を書いたばかりなのに、もうZapierを使わないでTogglとGoogle …

no image

iOS開発 – Swift3.0でLTMorphingLabelをCocoaPodsで導入時、コンパイルエラーになる問題を解決

現執筆時、2016/11/19(土)の時点で、CocoaPodsでLTMorphingLabelをインストールしたときにコンパイルエラーとなる問題の回避方法をご紹介致します。 コンパイルエラー時のスク …

no image

macOS High Sierraに致命的なバグが発見された!パスワードなしでログイン可能!!対策方法をご紹介。

macOS High Sierraに誰でも管理者としてログイン出来てしまう致命的なバグが見つかりました。 下記記事からの抜粋ですが、ユーザー認証入力時、ユーザーネームをrootでパスワードを空にして入 …

no image

Curlコマンドで引数が長い場合に発生するエラーの対処方法

base64エンコードしたデータをcurlコマンドで送信時、下記のエラーが発生する問題を解決。 ※ base64エンコードしたデータは、テキストファイルとして保存。 エラー: Argument lis …

プロフィール

プロフィール

地元青森でITエンジニアとしてフリーランスで活動中。フルリモートで生活費を稼ぐ傍、作りたいアプリを黙々と製作中。

ポートフォリオはこちら