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つのリソースに複数の状態が出来てしまい少し複雑になってしまうのを回避するためですね。

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

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

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

参考

-テクノロジー
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

OS X(Macbook or iMac or Macmini)の待ち受け画面をすっきりさせてかっこよくカスタマイズしちゃおう!

どうも!こがわです。 今日はOS Xの待ち受け画面をすっきりさせて、かっこ良くする方法をお伝えします。 最終的に下記のような画面になります! そうです。壁紙以外一切表示されません!どうです?シンプルで …

Ionic3でハイブリッドアプリ開発時に遭遇した問題と問題に対する対処法の共有

この記事はIonic Advent Calendar 2017の12/22のエントリーです。 アプリを開発するにあたり遭遇した問題を共有しようと思います。 いつか同じ問題に遭遇した時、このページで解決 …

Ionic3でGoogleMaps表示とGoogle PlacesAPIを用いたAutocomplete機能を持つアプリを作る方法その1: GoogleMapsで現在地をマーカーで表示する。

どうも、こがわです。 とあることをきっかけにGoogle Mapsをハイブリッドアプリで使う機会が出来たので、得た知見を共有したいと思います。 例にもれず使用したフレームワークはIonicです。 ちな …

no image

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

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

no image

macOS High SierraでGarageBand関連ファイルに取られている容量を解放する方法

突然ですが、MacBook Proの空き容量問題ありませんか? 僕はあります。 下記画像をご覧頂いて分かる通り、10GBしか空き容量がありません。 これではiPhoneで撮影した約30分の4K動画を入 …

プロフィール

プロフィール

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

ホームページはこちら