Web API, REST API, SOAP API の違いや API のメリットとは?

目次

API とは?

API とは Application Programming Interface の略で、サービス内の情報や機能を扱えるようにする仕組みです。

 よく 「API をたたく」という表現を使ったりしますが、下図のように情報(データ)は格納されているサーバーがあったとします。
我々使用者は、その情報が欲しい時は、そのサーバーに対して「この情報が欲しいですよ」というリクエストを送ります。
サーバー側は受け取ったリクエストをもとに、使用者にレスポンスを送ります。

これが API の大まかな流れになります。

WEB API

我々が普段から口にしている API は一般的に WEB API を指します。

WEB API とは、

 HTTP・HTTPS ベースで実現する API

 Web を介して使用する API

です。

API は WEB API のことであると思っていただくとわかりやすいかと思いますが、WEB API 以外の API も存在します。

プラットフォームのサービスを開発している企業が独自に規定している「独自API」というものも存在します。

REST API

REST は

Representational State Transfer

の略で、REST API は

「REST の原則」に則って実装されている API

を意味します。「REST の原則」は4つの原則から成り立っており、

この原則に沿って設計された API は、APIを効果的に活用しており、多くの API で用いられているルールとなります。

4つの原則とは

  • アドレス可能性
  • ステートレス性
  • 接続性
  • 統一インターフェース

となっています。

アドレス可能性とは

URI からリソースを端的に表現できる性質を表していて、すべての情報が一意に表現されていることです。

つまり、1つの URL ですべての機能を表現できるようにすることです。

例えば、書籍情報を管理する API があったとして、URI を「http://book-management」としたとき、この URI で「登録」「取得」「更新」「削除」ができるということを意味しています。

ステートレス性とは

すべてのリクエストが完全に分離していて、セッションなどの状態管理は行わないことを意味します。

つまり、最初に送ったリクエストとその次に送ったリクエストは完全に独立していて、リクエスト間で影響を及ぼさないということを意味しています。

接続性とは

情報に「別の情報へのリンク」を含めることができ、リンクを含めることで、別の情報に接続可能になるということを意味しています。

統一インターフェースとは

情報の取得、作成、更新、削除といった操作全てHTTPメソッドを利用します。

SOAP API

SOAP は

SimpleObject Access Protocol

の略です。

REST とは違い、URI に動詞的になることが多い。

また、RESTはレスポンスとしてjson, xmlなどのフォーマットは特に指定していないのに対して、SOAPは、リクエストとレスポンスともにxmlフォーマットのデータを扱う方式になっています。

REST か SOAP のどちらがいいということはなく、どちら一長一短で、場合によって実装方針を変える必要があります。

API 活用のメリット・デメリット

メリット

  • 開発の効率化、コストの削減

すべての機能を自分で用意する必要がなく、開発にかかる時間やコストの削減ができる

  • セキュリティ、顧客満足度向上

他社の API を使用する場合、様々なデータや機能を自社で保有することがないのでセキュリティ面の向上につながります。

  • システム変更による影響の最小化

自社で様々な機能を実装している場合、何かの仕様変更をもとに、大部分を書き換えなければならなくなるが、API であれば影響が最小化できる。

デメリット

  • API サービスに依存してしまう

他社の API であれば料金体系の変更や API 提供の中止によってサービスが成り立たなくなることもあり、API仕様変更で不具合が生じるケースもある。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

新卒4年目です。spring boot, jquery, vue を使ってフロントエンド開発、quarkus、azure kubernetesを使ってバックエンドを作ってました。 今は、UXデザイナーを目指して勉強中です! よろしくお願いします。

コメント

コメントする

CAPTCHA


目次