APIは、中々聞き馴染みのない言葉だと思います。エンジニアやITサービスを作っている人も何となく理解している人も多いのではないでしょうか。
スーパーシティにおいてもAPIに関する取り決めを行ったり、APIを使いシステムを構築していく予定です。スーパーシティのシステムとは切っても切り離せない、APIについて解説していきます。
APIとは
APIとは、「Application Programming Interface(アプリケーションプログラミングインターフェイス)」の頭文字を取ったものであり、通信することで他のサービスやシステムを利用することができるものです。最近では、銀行もAPIを提供するようになっています。
具体的にAPIは何をしてくれるのか?
例えば、あなたがTwitterを使っているとします。
過去の自分がツイートしたデータをすべて取得したいと思った時、どうしますか?
Twitterを開いて、一つ一つのツイートをコピーします。
それも正解ですが、10件や20件なら一つ一つコピーできますが、1,000件や10,000件になったらどうでしょうか?
うーん。。。業者に依頼して、人力で頑張ります!
そんなことしなくても大丈夫です。なぜなら、Twitter社がAPIを公開しています。
例えば、自身のツイートを取得するのはもちろん、他の人のツイートや検索ワードで絞り込みもできます。
このようにサービス提供者がAPIを公開することで、サービスの一部を利用することができるのがAPIです。
APIを実際に使ってみた
APIをどのように使用するかイメージがつかないと思うので、動画にしてみました。動画では、郵便番号から住所を取得するAPIを利用しています。httpsから始まるURLのような形でアクセスすると、住所が返ってきます。
https〜1010061をクリックしてみても同じ結果が得られるので試してみてください。また、郵便番号を他の住所に変えることで値も変わります。
# 動画内で実行しているソースコード
curl 'https://zipcloud.ibsnet.co.jp/api/search?zipcode=1010061'
APIを公開しているサービス(一部抜粋)
今や、APIを公開しているサービスは無数にあります。一部、APIを抜粋してみます。(※非公開になったり、名称が変わったりすることも多くありますので、各サービスサイトで最新情報を確認ください。)
- Google スレプッドシート
- YouTube
- Google Maps
- LINE
- DMM
- ホットペッパー
- ぐるなび
- Amazon
- Stripe
- Qiita
- 楽天
- NHK
APIを利用して作られているサービス
こういった公開されているAPIを使って、作らているサービスもたくさんあります。
読書管理アプリ
例えば、ブクログなどの読書管理アプリは、Amazonや楽天のAPIを利用しています。本の情報をすべて企業が管理するのは難しいためAmazonや楽天が販売しているデータを取得して、取得したデータを表示することで、本の表紙やタイトルを簡単に検索したり、表示したりできます。
キュレーションサイト
ニュースやまとめ記事などを収集して公開しているキュレーションサービスもAPIを使っている可能性が高いです。ただし、キュレーションサイトの場合、RSSやクローリングといった他の技術も合わせて使い、記事やニュースを収集していることもあります。
エンジニア転職支援サービス
エンジニアは、過去に書いたソースコードをGitという技術を使って管理しています。中でも有名なのがマイクロソフトが買収したGitHubで、GitHubにあるソースコードを面接時に確認し、エンジニアのスキルを測ることも一般的です。最近、エンジニア転職支援サービスでは、スキルの可視化をするためにGitHubにあるソースコードをAPIから取得して、自動で解析しスコアリングするといったことが主流です。ソースコードの情報の取得にAPIを使用しています。他にもQiitaというエンジニアがよく使う開発時に困ったことや手順などを書いて記録するサービスなどから記事の情報を取得する時にAPIが用いられれます。
なぜ、サービス提供者はAPIを公開しているのか
APIは、基本的に無料で使えることが多いです。なぜ、サービス提供者は、APIを公開するのでしょうか。
- 自社サービスを使うきっかけを増やすため
- APIを利用してもらうことで、頻度やユーザーの幅を広げることができます。
- APIを利用する開発者向けに広告を表示し、収益を得るため
- APIを利用する人はエンジニアなどの開発者です。開発者が利用する画面に例えば、エンジニア向けの広告を出すことでターゲットに訴求しやすくなります。
- サービスの新しい用途や可能性を広げるため
- APIで、個々の開発者の創造性によって新しいサービスが生まれ、あたらしい需要を創出することを考えています。
- 自動化するため
- 例えば、メールや電話で問い合わせを受け、処理していたものをAPIで直接連携すればメールや電話の問い合わせコストが減ります。
- 他社との差別化のため
- より業務向け、法人向けアプリやサービスの場合のみですが、APIを公開しているか、いないかで使い勝手が全然違います。そういった時にAPIの公開や内容が差別化要因となります。
APIを公開することが当たり前になっているのもありますが、公開することで利用者が増えるということが大きなメリットです。もちろん、公開することで開発コストがあがりますし、外部に公開するのでセキュリティ面をしっかりしないと、侵入経路になってしまうというリスクもあります。
スーパーシティとAPI
スーパーシティ構想の中で、「都市OSとデジタルデータ」、「都市OSとサービス/アプリケーション」を結ぶ役割として、「標準API」と記載されています。
都市OSに収集されたデータを利活用するために、APIを活用します。例えば、区役所などで役所の方が住民のデータを検索する時などにAPIが利用されます。また、消費者が行政や交通などのサービスを受ける際もAPIで、手続きに必要な個人情報を取得して個人確認ができれば手続きを簡略できるサービスなどが構築されると思います。
APIを使うことで、都市OS自体には基本的な機能を持たせ、それぞれのシステムを個々に開発できるため、例えば、一部システムを入れ替えたいという場合も都市OSに手を入れることなく改修することができ、コストは下がり、改修速度は向上します。いわゆる疎結合なシステムになります。
標準APIとは
スーパーシティ構想において、APIは重要な役割を果たすため、標準化を進めようと何度も会議が開かれています。日本の中で標準化されると、都市が違っても同じような仕様で開発することができます。
現在の日本のシステムは、標準化されていません。各々の自治体がそれぞれの仕様で構築、保守を行ってきたためです。これは、各地が方言で話しているのと同じ感覚です。自分が住んでいる土地であれば、意思疎通は問題なく行えますが、いざ他の地域に行くと方言が何言っているのか聞き取れなかったり、聞き取れても微妙なニュアンスが違うことで認識齟齬が生まれたりします。
標準APIとは、標準語を決めることなのです。