Web APIに関する世界観です。
Web業界で使われるAPIという用語は、多くの場合「Web API」のことを指しています。Web APIとは、サービスの一部だけを公開し、外部の別のサービスやソフトウェアから利用できるようにしたものです。
「API」という用語自体は、昔から(今でも)、ソフトウェア(特に言語処理系やOS、ライブラリ、ミドルウェア)の標準機能を外部から利用するためのインターフェースを指した言葉として使われています。
たとえば、C言語のAPIは標準ライブラリ関数やプラットフォームのライブラリのことです。LinuxのAPIはシステムコールやlibcのことです。JavaのAPIはJava SEなどのクラスライブラリのことです。
ただし、今のWeb業界では、APIと何も仮定せずに言った場合、Web APIのことを指している場合が多くなりました。
Web APIの例としては、たとえばツイッターのユーザー認証情報やデータを外部から利用することのできるTwitter APIや、それと同様のFacebook API、LINE APIなどがります。
このようなAPIを使うメリットは、開発の効率化やコスト削減、簡単にサービスの質の向上ができることのほかに、データを利用して自分でそのデータの加工や解析などを行いたい場合(ツイッターのツイートをブログ形式で表示できるツイログなど)や、セキュリティの向上(ツイッターやGoogleなどのアカウントを使って自分のSNSを作れば、自分でその認証情報を安全に管理しなくても、ツイッターやGoogleが代わりにきちんと管理してくれるため、ツイッターやGoogle任せにできる)などがあります。
以上は以下のページを参考に執筆しました。
以下に主要なWeb APIの一覧があります。
僕は、JavaScriptが勢力を増している理由は、Web APIの存在が大きいと思います。
通常、GoogleやTwitterなどのWebサービスは、ページを人間が見て、人間が操作します。
しかしながら、JavaScriptを使った「Web API」を使うことで、こうしたWebサービスの機能を、外側からプログラマブルに使うことができます。
Web APIは、Google, Twitter, Facebookなどの大手Webサービスが提供していて、たとえばJSONやXMLの形式でデータを得ながら、JavaScriptによって外部から操作できます。
Web APIを使うと、HTTPやJavaScript API、あるいはJavaScriptを単純にHTMLに埋め込む形の「ウィジェット」(ブログパーツ、ガジェット、プラグインなどとも呼ばれる)などを使って、たとえばGoogle翻訳でテキストを外国語に翻訳したり、Google Mapsの地図に独自にピンをつけて自分のWebサイトに案内図を表示したり、Twitterクライアントを作ったり、Twitterに定期的に自動でツイートするbotを作ったり、ということができます。Twitterの認証にはOAuthという認証技術を使います。
APIの提供には、SOAPやRESTといった技術を用います。SOAPはネットワークで外部の関数を呼び出すRPCのように、リモートで手続きを呼び出しますが、RESTはHTTPでデータを送受信します。REST風のAPIをRESTfulと呼び、SOAPではXMLを、RESTではXMLのAtomあるいはJSONと関連します。
このような「外部のWebサービスのサービス機能を利用する」という発想は、JavaScriptを大きく特徴付けられるものになっています。GoogleやTwitterのAPIを呼び出すことで、自分のWebサイトでそれらのサービスの機能を使えます。
Web APIが用意されていなくても、HTMLを取得して解析する「スクレイピング」という技術を使えば、Webサイトの情報を処理できます。スクレイピングはプログラミング入門者には優しい課題で、Pythonを使ってスクレイピングを行うプログラミングの入門書なども出ています。昔ながらの「2ちゃんねる専用ブラウザ」も同様の技術であると言えるでしょう。
詳しくは以下の書籍が参考になります。
フロントエンドとバックエンドを分割して開発する場合、フロントエンドはReactなどのフレームワークを使い、バックエンドはJSONを返すようにして、Web API(REST)のインターフェースで両者を結合することがよくあります。
このような時は、バリデーションに注意しましょう。インターネット上にサービスを公開する際に、不正なリクエストが来ないと想定することは想定が甘すぎます。また予期せぬデータの破壊が起きないように、フロントエンドだけではなく、バックエンドもバリデーションに気をつけましょう。
CGIも参照のこと。
実際のAPIの開発には、JavaScriptではNode.jsとExpressを使うことが多いです。データベース管理システムにはMySQLやPostgreSQLを使い、REST APIでフロントエンドと結合します。データ形式にはJSONを使います。
2023.06.30
JavaScriptを参照のこと。
RESTを参照のこと。
JSONを参照のこと。