40
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

API仕様の重要性とAPI-Firstな開発手法の導入について(2/3)

Last updated at Posted at 2015-06-07

前回の記事はこちら
API仕様の重要性とAPI-Firstな開発手法の導入について(1/3)

前回は、APIについての説明をしましたので、今回はRESTという言葉の意味や内容についてまとめていきたいと思います。

REST APIとは

よくRESTとかRESTfulって言葉をよく聞きますが、まずはそれぞれの意味を詳しく調べてみました。
引用ですが簡単にまとめます。

REST

RESTはREpresentational State Transferの略。
RESTとは、2000年にRoy Fielding氏が提唱した、分散システムにおいて複数のソフトウェアを連携させるのに適した設計原則の集合。また、狭義には、それをWebに適用したソフトウェアの設計様式のこと。一般には後者の意味で用いられることがほとんどである。(引用元:eWords)

RESTful

「RESTfulな○○」という言葉は、「RESTの制約に従っている○○」という意味を表す。RESTとは、アーキテクチャ・スタイルの一種で、「制約の集まり」と考えてよいだろう。何を制約するか? それは狭義では「どのようにHTTP通信を利用するか」を制約する。HTTPメッセージにはどのような情報を格納するか、どのようにHTTPメソッドやHTTPヘッダを指定するか、などといった制約の集まりがRESTである(引用元:atmarkit)

REST(ful) API

RESTful APIとは、Webシステムを外部から利用するためのプログラムの呼び出し規約(API)の種類の一つで、RESTと呼ばれる設計原則に従って策定されたもの。RESTそのものは適用範囲の広い抽象的なモデルだが、一般的にはRESTの考え方をWeb APIに適用したものをRESTful APIと呼んでいる。(引用元:eWords)

まとめるとRESTとは、Webで管理するソフトウェアに適した設計様式であり、RESTfulとは、その設計に従ってつくられる、という意味だそうです。調べたところによると、もともとはRESTという言葉のみだったのだそうですが、なんちゃってRESTが横行したそうで、RESTにきちんと従っているものをRESTfulとわざわざ表現するようになったのだとか。

RESTの具体例

それぞれの言葉の意味は理解出来たとして、具体的にRESTの設計手法とはどのようなものなのかを調べてみました。

簡単に図でまとめると、
Screen Shot 0027-06-07 at 7.31.13 PM.png

に則って設計されているもののことだそうです。
ここで覚えておきたいのが、

  • リソース(もの)に従っていること
  • リソースはURI(識別子)を持つこと
  • HTTPメソッドによって動作がおこなわれること
  • HTTPリクエストにはステータスコードが伴うこと

という点です。細かな定義や正しいRESTの設計手法については

この辺りを参考にしてみてください。

実際に確認してみよう

実際にブラウザ(今回はChrome)の以下の手順で、上記の具体的な内容を確認することが出来ます。

右クリック > 要素の検証(Inspect Element) > Networkタブを選択 > Headersを選択

すると、以下のような通信をおこなっていることがわかります。わかりやすくそれぞれ説明文を加えます。

Screen Shot 0027-06-07 at 7.20.20 PM.png

上記はQiitaのTOPページにアクセスした時に表示されるもので

  • 54.248.124.252というIPアドレスの80というポート番号に
  • http://qiita.com というURLで
  • GETリクエストを送信し
  • 正しくGET出来ました

という意味を表します。
このようにいろんなWebサービスを利用するときに、どのようなリクエストがおこなわれているのかをチェックしてみると、Webサービスの仕組みを深く理解することが出来るかもしれません。

RESTのメリット

  1. わかりやすい
    • URIに規律があるため、みたら直ぐに何をしているのかがわかる
    • サービス内のリソースがURIで参照することが出来る
    • 参照URIでは、常に同じレスポンスが期待できる
  • スケールや連携しやすい
    • 新たな機能などにも対応しやすい
    • RESTAPIを活用すればマッシュアップサービスがつくりやすい

という大きく2つのメリットが有るようです。(デメリットも有るようなのですが今回は触れません)

参考になる実際に公開されているRESTful API一覧

国内外のIT企業では、有償あるいは無償にてAPIを公開しています。
REST APIを学ぶ上で非常に参考になるAPIを紹介します。

このように、様々な企業が公開しているREST APIを参照し、共通点を探したり異なる要素を探すことで、その設計手法を勉強するのも方法としては面白そうですね。

REST APIの内容や重要性が理解できたところで次回は具体的に、API-firstな開発手法のご紹介と実践を行っていきたいと思います。

今回参考にした記事など

40
36
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?