最近業務でREST APIを作っているのですが、最近までほとんど意識していませんでした…。
自身の備忘録に。
#RestfulAPIとは
RESTful APIとは、Webシステムを外部から利用するためのプログラムの呼び出し規約(API)の種類の一つで、RESTと呼ばれる設計原則に従って策定されたもの。RESTそのものは適用範囲の広い抽象的なモデルだが、一般的にはRESTの考え方をWeb APIに適用したものをRESTful APIと呼んでいる。
引用: IT用語辞典 e-Words
一言で言うと、APIの形式の一つでありRESTという設計原則に則っているものになります。
では一体、その設計原則のRESTとは何なのか。
REST(Representational State Transfer)
- 情報は一つのリクエストで完結し、セッションなどの状態管理を行わない
- HTTPメソッドなど、命令の体系が定義されている
- リソース(URL)指向
- 情報の内部に別の情報やその状態のリンクを含めることができる(HTMLなどで情報を表現する)
上記のような特徴を持っています。
また他の一般的なRESTの特徴として、URLが名詞形であったり、レスポンスがJSON形式で行われたりすることも挙げられます。
REST成熟度モデル
- レベル0 : HTTPプロトコルを使用している
- レベル1 : リソースの概念(URL)を導入している
- レベル2 : HTTPメソッド(POST,GETなど)を使い分けている
- レベル3 : HATEOASの概念を導入している
RESTはこのような成熟度モデルを持ち、今時のAPIは一般的にレベル2に到達しているものが多いです。
このREST成熟度モデルを参考にすることで、RestfulAPIを設計する際に、自身のAPIがどのレベルにいて、どのように改善させて成熟させていくべきかの指針にすることができます。
終わり
今回紹介したものはほんの一部であり、他にもセキュリティやエラー処理に関しても様々な規則が定められています。
ちなみに、RESTAPIとRestfulAPIはほぼ同義として扱われることが多いですが、RestfulAPIは完璧にRESTに準拠しているということを指すようです。
RestfulAPIについてまだまだ情報が多く処理しきれていないので、おいおい整理していきたいなと。
以上!