有効期限のないAPIキーの問題点
何年も前に発行され、一度もローテーションされず、今も有効なキーは、便利なものではありません。何年も誰も実際に確認していない負債です。
うまく答えられないリクエストに対しても常に何かを返すAPIは、ときどき明確なエラーを返すAPIよりも、表面上は高機能に見えます。しかし、その印象は誤解を招くものです。不確かさを認めずに答えを推測するレスポンスは、より役に立つわけではありません。むしろより危険です。自信のある正しいレスポンスとまったく同じに見え、呼び出し側がそれに基づいて行動する前にさらに確認すべきだというシグナルを何も与えないからです。
当社は、最善の推測を通常の答えのように装ってひそかに差し替えるよりも、明確なエラーを返すか、信頼度が低いことや部分一致であることをはっきり示すレスポンスを返したいと考えています。これが最も重要になるのは、ジオコーディング、逆ジオコーディング、オートコンプリートです。まさに、部分的な住所やあいまいな住所によって、入力がきれいに解決されなかったと認める代わりに、最も近いもっともらしい一致を返したくなるエンドポイントです。通常の結果として提示される最も近いもっともらしい一致は、不正確な位置データが配送、サービスエリアの確認、顧客レコードに入り込む最もありがちな経路です。レスポンスの中に、何かが不確かだったことを示すものが何もないからです。
これは、当社がジオコーディングとオートコンプリートについて、完全に完成し実証済みの機能だと主張するのではなく、具体的な検証済みの精度の数値を掲げることに意図的に慎重である理由の一部でもあります。具体的な精度の数値を公表できるほど自信のあるシステムは、その数値がカバーしない入力で何が起こるかについても同じくらい自信を持っていなければなりません。そして、どのジオコーディングシステムにとっても正直な答えには、無理に答えに当てはめるのではなく、未解決またはあいまいとして返すべき住所が一定の割合で含まれます。
エラーレスポンスには、その場でのコストがあります。呼び出し側のアプリケーションは、常にきれいなオブジェクトを受け取るのではなく失敗のケースを処理しなければなりません。また、表面上は開発者体験が悪いように感じられることもあります。たまたま正しかった推測はエラーのないレスポンスとまったく同じに見え、たまたま間違っていた推測も、後工程の誰かが気づくまではまったく同じに見えるからです。それこそが問題なのです。推測と正しい答えは外からは見分けがつきません。だからこそ、内部でその違いを見分けられないシステムは、どちらかを選んで確実なものとして提示し、その溝を取り繕うべきではないのです。
当社は、自信のある推測よりも明確な失敗を選ぶというこの方針は、当社だけでなく、あらゆるデータAPIにとって基本的な前提であるべきだと考えています。呼び出し側は、自分が知らないことについて正直に伝えるシステムを中心に、本当のエラー処理を構築できます。常に答えを返すシステムを中心に、信頼できるエラー処理を構築できる呼び出し側はいません。実際に正しく答えたリクエストと、ひそかに推測してたまたま間違った側に着地したリクエストを見分ける方法がないからです。