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

Rubyの組み込みライブラリ「RSS」で、itemにカテゴリーを設定する方法

タイトルの通りです。 記事を書いた背景として、公式ドキュメントを読んでもitemにどのようにしてカテゴリーを設定すれば良いのか一見してわからず、時間を浪費してしまったことがあったため、メモ書き兼共有を …

no image

Mac OS XでPDFに電子印鑑(画像)を無料で貼り付ける方法を紹介

MacでPDFに電子印鑑(画像)を貼り付ける方法をご紹介します。 とある事情で、PDFに電子印鑑を押さなければならなくなりました。 プレビュー.appでできるだろうとたかをくくったところ、出来ず、あれ …

Ionic3でGoogleMaps表示とGoogle PlacesAPIを用いたAutocomplete機能を持つアプリを作る方法その2: Google PlacesAPIを用いてAutocompleteを実装する。

どうも、こがわです。 本記事はIonic3でGoogleMaps表示とGoogle PlacesAPIを用いたAutocomplete機能を持つアプリを作る方法その1: GoogleMapsで現在地を …

no image

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

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

no image

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

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

プロフィール

プロフィール

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

ポートフォリオはこちら