手作業でAPIキーを発行、請求書は手で書き起こし――「駅すぱあとWebサービス」が取り組んだWeb API改善施策企業がAPIを提供する際のポイントとは

「Google Cloud Next '18」でヴァル研究所 ナビゲーション開発部テックリードの田辺純一氏は、「駅すぱあとWebサービス」の開発や運用を振り返り、企業がWeb APIを提供する際のポイントを紹介した。

» 2018年11月20日 05時00分 公開
[石川俊明@IT]

 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認証システムを利用していた。

当初の「駅すぱあとWebサービス」のアーキテクチャ 当初の「駅すぱあとWebサービス」のアーキテクチャ 利用申し込み後のAPIキーの発行や、有料プランでの請求書の作成などで「担当者の手作業が多く発生する構成だった」という

 「サービスの利用ユーザー数の増加や、APIのレスポンスが遅いという問題に対しては、オンプレミスからクラウド(Amazon Web Services)への移行や、システムの再実装で解決を図った。しかし、独自実装したWeb API認証システムには、認可部分に曖昧な仕様があった。クラウドへの移行後も、曖昧な仕様がある問題と、手作業の必要な状態が続いた」

ALTALT 駅すぱあとWebサービスを提供していたシステムをC言語で再実装したが(左)、独自認証システムは改善するのが後回しになったという(右)(クリックで拡大)

 そこで田辺氏は、独自認証システムの曖昧だった仕様部分の改善と並行し、API管理サービスの導入検討を開始。結果、「Apigee APIプラットフォーム」(以下、Apigee)の導入に至った。

 駅すぱあとWebサービスが導入したApigeeは、Googleが提供するAPI管理サービスだ。認証、流量制限などのAPIゲートウェイとしての主要機能に加えて、Web APIに関するドキュメントを公開する開発者ポータル機能、API提供側がAPIの利用状況を把握できる分析機能を持つ。

 「『駅すぱあとWebサービス』に必要だと考えていた管理機能を持っていたこと、APIの仕様を変更することなく導入が可能だったこと、APIの管理設定を変更する際にサポートへの問い合わせが不要だったことが、Apigeeを導入する決め手だった」

Apigee APIプラットフォームの導入状況 Apigeeの導入状況 開発中のAPIに適用し、本番サービスには適用途中だという。

 一方で田辺氏は、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.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。