APIとは?
いきなりだが、最近「ユニコーンに乗って」というドラマが面白くて毎週観ている。
毎週火曜日、時間になったらソファーに座ってテレビをつけ、リモコンでテレビをドラマのチャンネルにする。こうしてことで好きなドラマを観ることができる。
この過程を絵で表現してみると以下のよう。
ここでリモコンやテレビは人間と放送局をつないでくれる。
APIはまさにリモコンやテレビのような役をする。
本題に戻り、話しましょう。
Webサービスには、会員登録、ログイン、イメージやつぶやきの投稿、商品購入、写真や動画の視聴などいろいろな機能があります。
このような人のいろんな要求を受けて処理してくれるのがサーバーであるが、人間の言語とコンピュータの言語は異なるため、APIが中間で対話のルールを定め、相互間の要求応答(Request and Response)を制御してくれる。
つまり、API(Application Programming Interface)は、アプリケーションをプログラミングするために使用される約束だと定義できる。
REST(Representational State Transfer) API
このようにAPIはプログラミングで不可欠な役割を果たしたが、共通する規則がなかったため、ユーザーがそれぞれ作成した規則に頼るしかなかった。そこで共通規則の必要により登場したのがRESTである。
REST APIの最大の特徴は、「Represent」が「表現する」という意味であるかのように要求する内容を見るだけで、クライアントが何を要求しているのか直感的に理解できる。下のURIのように。
https://www.nikkansports.com/baseball/news/
そして、そういうREST規約をよく守って作られたAPIをRESTful APIという。
REST APIを設計する時重要な2つの項目
- URIを介してアクセスしたいリソースがどこにあるかを表さないといけない
- リソースへの要求はHTTPメソッドでする
RESTの構成要素
- リソース(資源)
クライアントがサーバーに要求するもので、Webサーバーが管理する全てのことを表す。固有のアドレスを指定し、識別できる。 - メソッド(行為)
リソースにアクセスするためHTTPメソッドを使用する。もっといろいろあるが、よく使われるメソッドは、以下の通り。
メソッド名 | CRUDで言うと | 実例 |
---|---|---|
POST | Create | 掲示板に投稿 |
GET | Read | 投稿を読む |
PUT | Update | 投稿の編集 |
DELETE | Delete | 投稿を削除 |
- Representation(表現)
クライアントがメソッドでリソースを要求すると、サーバーはそれを処理し、応答する過程。