手作業でAPIキーを発行、請求書は手で書き起こし――「駅すぱあとWebサービス」が取り組んだWeb API改善施策:企業がAPIを提供する際のポイントとは
「Google Cloud Next '18」でヴァル研究所 ナビゲーション開発部テックリードの田辺純一氏は、「駅すぱあとWebサービス」の開発や運用を振り返り、企業がWeb APIを提供する際のポイントを紹介した。
Googleは2018年9月19、20日に「Google Cloud Next'18」を開催した。本稿では、ヴァル研究所 ナビゲーション開発部テックリードを務める田辺純一氏の講演「Web API の育て方:駅すぱあとWebサービスでのApigee適用事例」の内容を要約してお伝えする。
利用ユーザーを想定し、APIの機能は「一般化」して提供する
「駅すぱあと」は、出発地点と到着地点を指定すると、移動に最適な公共交通機関の情報を提供する経路探索システムだ。1988年にMS-DOS版「駅すぱあと」の提供を開始し、2010年には、駅や路線などの情報を、無料/有料のWeb APIで開発者へ提供する「駅すぱあとWebサービス」を公開した。駅すぱあとWebサービスの開発当初から携わっている田辺氏は「2010年当時は『マッシュアップ』が流行しており、その流行に合わせて開発、公開した」と背景を振り返る。
参考記事:いまさら聞けない「マッシュアップ」超入門
田辺氏は、企業がWeb APIを公開する際には「想定するユーザーを絞るべきだ」と指摘する。
「駅すぱあとWebサービスでは、既存の法人顧客を想定して開発を行っていた。『駅すぱあと』固有の特性を把握している既存顧客へ、駅すぱあとWebサービスの導入を勧めやすかったからだ」
当初は、中核となる駅の情報や単純な経路探索の情報のみをWeb APIで公開し、「必要そうだ」と判断した機能を実装したり、企業からの要望へ応えたりする形で実装を進めたという。
「駅すぱあとWebサービス公開後に、APIに対して『周辺駅検索でバス停を除外するパラメーターを追加してほしい』という要望があった。要望通りに実装すると、『バス停を除外できるパラメーターを追加する』ことになる。しかし、その目的でしか利用しないパラメーターを追加することは、APIの仕様を複雑にして、開発、運用負荷を上げてしまう。そこで、『交通種別を指定できるようにする』という形へ一般化して実装した。APIを提供する場合には、拡張性を意識しながら、分かりやすい仕様を考える必要がある」
「API管理サービス」の早期導入を推奨
企業が提供するWeb APIの競合優位性を高めていくためのポイントについて田辺氏は、「外部のAPI管理サービスを早い段階で導入すべきだ」と述べる。
駅すぱあとWebサービスは当初、オンプレミスで構築した。APIキーは手動で発行し、キーの認証は、独自実装した簡易なAPI認証システムを利用していた。
「サービスの利用ユーザー数の増加や、APIのレスポンスが遅いという問題に対しては、オンプレミスからクラウド(Amazon Web Services)への移行や、システムの再実装で解決を図った。しかし、独自実装したWeb API認証システムには、認可部分に曖昧な仕様があった。クラウドへの移行後も、曖昧な仕様がある問題と、手作業の必要な状態が続いた」
そこで田辺氏は、独自認証システムの曖昧だった仕様部分の改善と並行し、API管理サービスの導入検討を開始。結果、「Apigee APIプラットフォーム」(以下、Apigee)の導入に至った。
駅すぱあとWebサービスが導入したApigeeは、Googleが提供するAPI管理サービスだ。認証、流量制限などのAPIゲートウェイとしての主要機能に加えて、Web APIに関するドキュメントを公開する開発者ポータル機能、API提供側がAPIの利用状況を把握できる分析機能を持つ。
「『駅すぱあとWebサービス』に必要だと考えていた管理機能を持っていたこと、APIの仕様を変更することなく導入が可能だったこと、APIの管理設定を変更する際にサポートへの問い合わせが不要だったことが、Apigeeを導入する決め手だった」
一方で田辺氏は、ApigeeのようなAPI管理サービスを導入する際の注意点も挙げる。
「導入時に『APIの公開仕様を変更する』など、ユーザーの負担となるようなことをせず、テスト用に用意しているAPIから導入を進めるべきだ。さらに、API管理サービスの料金体系にも注意が必要。駅すぱあとWebサービスでは、APIの呼び出し回数に応じた利用料金を設定しているが、回数に応じた収益がないと、API管理サービスの利用料金と釣り合わない。コール数と収益のバランスを確認しながら利用すべきだ」
企業が「Web APIを提供している」ことを認知させる活動も大切
これまで述べてきたようなAPI公開時のポイントに加え、田辺氏は「知ってもらうための活動も必要だ」と述べる。駅すぱあとWebサービスでは無料、有料で提供しているが、有料のみで提供する機能であっても、ドキュメントをオープンにして読める状態にしているという。
「駅すぱあとWebサービスでは、当初は自動生成したドキュメントを公開していたが、社内でドキュメント改善チームを作り、読みやすいドキュメントにするため手作業で改善を行っている。分かりやすいドキュメントを心掛ければ、APIに関するサポートの手間を減らすことができるからだ」
さらに技術者向けのハッカソンへWeb APIを提供したり、エバンジェリストが啓蒙(けいもう)活動を行ったりしているという。講演最後に田辺氏は、企業がWeb APIを開発する際のポイントを総括した。
「Web APIの仕様は『使いやすさ、拡張性、分かりやすさ』の3つを意識すべきだ。さらに、API管理サービスを早期に導入して、競合優位性を高めていくべきだろう」
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Google、「Apigee APIプラットフォーム」にAPI監視やサービス拡張などの機能を追加
Googleは、ライフサイクルAPI管理に役立つ「Apigee APIプラットフォーム」について、新機能である「Apigee APIモニタリング」「Apigeeエクステンション」「Apigeeホステッドターゲット」の正式提供を開始した。 - 5分で絶対に分かるAPIマネジメント、API経済圏
「API管理」の概要と必要性、技術構成、主要ベンダーなどについて解説。さらに、今注目される「API」の概要と、SOAとの違い、APIの公開における4者の役割と課題、今後どうなるのかについても紹介する。 - 5分で絶対に分かるAPI設計の考え方とポイント
API設計を学ぶべき背景と前提知識、外部APIと内部API、エンドポイント、レスポンスデータの設計やHTTPリクエストを送る際のポイントについて解説する。おまけでAPIドキュメント作成ツール4選も。