Cariot APIの半分は、開発部の優しさでできている
こんにちは。Cariot(キャリオット)開発部です。
今回よりCariotの製品開発の視点から、Cariotの技術的な話や開発秘話(?)に関する記事も本ブログにてお届けしていきたいと思います。
過去の記事では、Cariot編集部より、到着予測機能、駐車イベントマップ機能、DriveCast機能などのアプリケーションとしての機能をピックアップして紹介してきました。
Cariotでは、上記のような新機能開発を行うにあたって、課題に対する機能要件だけでなく、UX、つまりお客様の課題や利用シーンを意識し、心地よく直感的に操作できることを大事にしています。また、機能だけにとどまらず、開発者向けに提供しているAPIでもこのマインドが生かされています。
先日、Cariot × APIというトピックで、enterprise_apiさま主催の「Enterprise APIs Hack-Night #9」という勉強会で発表させていただきました。
▼資料はこちら。
発表において、APIは、公開して終わりではなく、利用者の目線に立った使い心地を重視し、活用してもらうことが大事であることをお話させていただきました。
今回は、そのAPI内容についてもう少し掘り下げてご紹介します。
その前に、今更ですが、Cariotは、以下の要素から構成されています。
- 車に取り付けて車のリアルタイムデータを取得する「車載デバイス」
- 車載デバイスから送信される車のデータを収集、分析、蓄積し、APIを公開する「Cariotプラットフォーム」
- Cariotプラットフォームと連携し、お客様向けの機能を提供する「Cariotアプリケーション」
基本的にはSalesforceプラットフォーム上で動作するAppExchangeパッケージとして提供していますが、APIを活用することでさまざまなカスタマイズが可能になっています。
AppExchangeパッケージ自体がCariotプラットフォームとAPIで連携して動作するため、普段のアプリケーションを作る上で、自分達でAPIのドッグフーディングを行い、正式リリース前にAPIの見直しを図ったりしています。
APIの設計においては唯一の正解はないと思っていますが、「使いやすいAPI」というのをもう少し噛み砕いて言い換えると、「APIの呼び出し側におけるリクエストの組み立て、レスポンスの処理、呼び出しの手間が少なくなること。」だと考えています。
例として、到着予測・ジオフェンス機能やDriveCast機能で利用しているAPIとして、車の詳細情報を取得するAPIを取り上げてみます。
※到着予測・ジオフェンス機能についてはこちら
このAPIでは、位置や速度などのクルマの情報に加えて、到着予測で利用しているそのクルマが現在いる拠点の情報、次の目的地の情報、次の目的地までの到着予定時間などをまとめて返します。
内部的に拠点情報がIDで管理されているとして、現在のいる拠点がID: 10の場合、以下のように返してしまうとどうでしょうか?
{
“current”: 10
}
(それ以外のパラメータは省略しています)
最低限の値を返す、という意味では目的は果たしています。
ただ、このAPIを使うようなケースでは、拠点のIDよりも、拠点の名前やそれ以外の付加項目を利用することがよくありますよね。このままの仕様での利用シーンをイメージすると、IDを返すだけでは不十分で、再度IDを使って詳細情報を問い合わせし、突き合わせを行う処理が必要になってくることがわかります。
そこで、以下のように返すようにしています。
{
“current”: {
“id”: 10,
“name”: “フレクト本社”
}
}
やったことはシンプルですが、受け取ったレスポンスをそのまま解釈して、扱えるようになりました。また、レスポンスのサイズを減らしたいなどの事情で、単純にIDだけを返したい場合でも、currentという名前を使わずに
{
“current_id”: 10
}
としておくことで、currentという名前で型を区別できるので、後方互換性をある程度保つことができます。
このように、そのAPIを実際に使った時に、余計な加工や再取得の手間がなるべく少なく、直感的に利用できるかどうか、というのを一つの視点として持つことを大事にしています。
Cariot開発部では今後も魅力的で価値ある機能を、お客様にストレスなくご利用いただける形でご提供します。また、Cariotの技術内容については、様々なイベント/セミナーでもご紹介しています。直近では3/24(金)に株式会社ゴーガ様主催のイベントにて、CariotでのGoogleMap API活用事例を開発目線でご紹介予定です。
使い勝手のところは、文字情報だけではなかなかお伝えづらいですが、オンラインセミナーや展示会なども活用して、ぜひCariotの使い心地を試してみませんか?