APIとは何か? Web APIとの違い、利用者のタスクを解説:基礎から分かるAPI管理【第2回】(1/2 ページ)
APIを利用するアプリケーション開発者の観点で、APIやWeb APIとは何か、実際にAPIを利用する場合にどのようなタスクが必要なのかについて解説する。
第1回「UberやKDDIのAPI活用とは 主要5社のビジネスモデルを解説」では、API活用が注目される背景およびAPI活用により実現するビジネスモデル、実際に展開されているサービスについて紹介した。第2回ではAPI利用者の観点から、そもそもAPIやWeb APIがどのようなものなのか、実際にAPIを利用する場合にどのようなタスクが必要なのかについて述べる。
併せて読みたいお薦め記事
APIで新たなビジネスに取り組む
マイクロサービスで不可欠なAPI
APIとは何か
APIとはApplication Programming Interfaceの略称であり、何かしらのサービス提供者が、そのサービスを利用するために提供するインタフェースのことだ。アプリケーション開発者(API利用者)がAPIを利用すれば、同じ機能を持ったサービスを開発する必要がないため、開発効率の向上や開発費用の低減が期待できる。
具体的なAPI利用の例として、銀行口座に対して入金する場合を考える。API提供者が入金サービスをAPI(以下、入金API)で提供しており、そのサービスには
- 銀行口座へのアクセスを許可する認可機能
- 現在残高の確認機能
- 入金額と現在残高を合算する機能
- 合算後の残高を表示する機能
が存在する。API利用者は入金APIに対して必要なパラメーターを与えるだけで、上記の機能全てが実現し、煩雑な機能の設計や実装といった作業から解放される。
Web APIとは何か
Web APIとは、先に述べたAPI提供者とAPI利用者とのやりとりをHTTP/HTTPSベースで実現するAPIだ。「Web」ではないAPIは通常、API利用者が用いるプログラミング言語と同じ言語で提供されることが多い。一方Web APIはHTTP/HTTPSベースのAPIであるため、異なるプログラミング言語で開発されたアプリケーション間を連携させることが可能だ。さらにWebブラウザでも利用できるなど、他のAPIよりも汎用(はんよう)的に利用できる。
Web APIの代表的な実装方式として、RESTとSOAPが存在する。
REST
RESTとはRepresentational State Transferの略称で、下記のRESTの考え方に従って実装されたAPIをRESTful API(またはREST API)と呼ぶ。
- HTTPのメソッド(命令)でデータ操作種別(CRUD)を表す
- POSTメソッドであれば作成(Create)、GETメソッドであれば参照(Reference)、PUT/PATCHメソッドであれば更新(Update)、DELETEメソッドであれば削除(Delete)を表す
- ステートレスにする
- 前回のAPIコール結果にかかわらず同じ値を戻す。例えば合計1000件のデータが存在し、1回目のAPIコールで100件まで取得したとしても、その状態は考慮せず、2回目のAPIコールでも同じ100件を戻すという挙動だ
- URIで操作対象のリソースを判別可能にする
- RESTでは、APIを介して操作する対象を「リソース」と呼ぶ。例えば「ユーザー」というリソースを表すために「users」というリソース名を付与することがある。ユーザーIDが「1000」のユーザー情報を取得したい場合、下記のようなURIフォーマットでURIを生成し、操作可能とする
- URIフォーマット:https://example.com/users/:user_id
- 生成されたURI:https//example.com/users/1000
- RESTでは、APIを介して操作する対象を「リソース」と呼ぶ。例えば「ユーザー」というリソースを表すために「users」というリソース名を付与することがある。ユーザーIDが「1000」のユーザー情報を取得したい場合、下記のようなURIフォーマットでURIを生成し、操作可能とする
- レスポンスとしてXMLもしくはJSONで操作結果を戻す
- 適切にデータ操作できた場合、データ記述言語のXMLもしくはJSONでデータ操作結果を記述し、HTTPのレスポンスボディーに含め、APIコール元に戻す
SOAP
SOAPは、XMLを利用したWebサービス連携プロトコルだ。XMLで記述された「SOAPメッセージ」と呼ばれるデータをやりとりすることで、メッセージを交換する。WSDL(Web Services Description Language)というWebサービスインタフェース記述言語でSOAPメッセージの構造を定義でき、このWSDLによる定義ファイルをAPI利用者、API提供者双方で保持することで、独自に定義した構造のSOAPメッセージをやりとりすることが可能となる。
Copyright © ITmedia, Inc. All Rights Reserved.