オープンAPIとOpen APIととWeb APIとREST APIの違い。

なんか色々バズワード化してますよね。
言葉が色々あって不明瞭なので少し整理してみましょう。

定義の狭さから掲題とは逆順で説明していきます。

REST API

これは文字通り、RESTアーキテクチャに従って作られたAPIのことです。
RESTはアーキテクチャのため、RESTの考え方にしたがって作られているWebAPIを「RESTful API」と呼称します。

RESTが何かという話は
garapon.hatenablog.com

Web API

HTTP通信などのWeb技術を用いて構築されたAPI(サービスインタフェース)が「WebAPI」と呼ばれます。
そのため、「RSETful API」もWebAPIの1つで「SOAP」やgoogle社の「gRPC」、facebook社の「graphAPI」などもWebAPIに含まれます。

オープンAPI

先にカタカタの「オープンAPI」を説明します。
オープンAPIとは「ある企業が提供するAPIのうちサードパーティーがアクセス可能なAPI」の事を指します。
サードパーティの定義はEuro Banking Association*1では以下5段階に分けられており、Private以外を指します。
- Public:誰でもアクセス可能
- Acquaintance:一定契約のもと誰でもアクセス可能
- Member:コミュニティに属するメンバーのみがアクセス可能
- Partner:パートナーとの合意に基づきアクセス可能
- Private:グループ内のみ
一般的に言われる「オープンAPI」はAcquaintanceに含まれますね。GoogleMapsAPIとか。

OpenAPI

さて、わかりにくさの頂点英語で書かれる「OpenAPI」これはなにかというと「Open API Spesification」の略称。
これがなにかというと、RESTful APIインターフェイスを記述するための標準フォーマットを推進する団体「Open API Initiative」が、The Linux Foundationの協力のもとでマイクロソフトGoogleIBMIntuitPayPal、3Scale、Apigee、Capital One、Restlet、SmartBearらによって結成されてました。
んで、Swagger specifications が寄贈されOpen API Spesificationという名称に変更。Swagger specificationsは「Swagger」と呼称されていたのでOpen API Spesificationが「Open API」と呼称されてしまったりしている。
まじめんどい。
正式文書の中ではちゃんと「Open API Spesification」とかいてあるのだけど人によっては「Open API 2.0」とかかいてあるとろがありわかりにくい。
なので日本のドキュメントではカタカナと英字で書き分けられることが多いです。
全銀協の表記も「オープンAPI
「オープンAPIのあり方に関する検討会」の設置について - 全国銀行協会
ちなみに英語では上記の「オープンAPI」を示すときは「Open APIs」と書かれる