有効期限のないAPIキーの問題点
何年も前に発行され、一度もローテーションされず、今も有効なキーは、便利なものではありません。何年も誰も実際に確認していない負債です。
APIの中には、本番環境とは機能的に分離されたサンドボックス環境を提供しているものがあります。キーが異なり、ときにはエンドポイントも異なり、場合によっては独自の料金体系や、より厳しい独自の上限があります。その意図はもっともで、実際の利用や実際の請求に触れることなくテストできる安全な場所を開発者に提供するというものです。しかし実際には、独自の登録手順、独自のキー、独自の有料アップグレード手順を必要とするサンドボックスは、開発者がそもそもそのAPIに手間をかける価値があるかどうかを判断しようとしているまさにその瞬間に、手間を増やしてしまいます。
私たちは別のサンドボックスを運用していません。テストと本番環境は同じ1日の無料枠を使用します。どのアドレスからでもキーなしで1日2,500件のリクエスト、キーを追加すればさらに1日2,500件で、ネットワーク単位でカウントされます。覚えなければならない独自の上限を持つ別のテストモードも、本格的なテストを購入の後ろに閉じ込める有料プランもありません。評価中に対象として構築するものは、1ユーロも使う前から、まったく同じ無料枠で、デプロイ先とまったく同じシステムです。
これが重要なのは、本番環境とわずかでも異なる動作をするサンドボックスは、あなたの連携ではなくサンドボックスをテストしていることになるからです。別のサンドボックスが実際のデータセットの代わりに簡略化されたレスポンスや偽のレスポンスデータを使っていると、実世界のデータの癖を知るのは本番稼働後になり、そもそもテストで見つけるべきものの大部分が無意味になります。実際のシステムに対して、実際のデータで、実際の無料枠を使ってテストすれば、評価中に学んだことが本番環境で実行するものについても実際に当てはまります。
サンドボックスへのアクセスを別の有料手順の後ろに閉じ込めないことには、私たちにとってコストがあります。その無料テストのトラフィックの一部は、決して有料アカウントに転換しません。これは気前のよい無料プランならどれにも共通するトレードオフです。私たちは、そのコストには価値があると考えています。そうでなければ、そもそもそのAPIを使って構築するかどうかを判断している開発者に、まさに間違ったインセンティブを押しつけることになるからです。有料または厳しく制限されたテストモードは、製品が自分の用途に合うかどうかがわかる前に、金銭的なコミットメントを求めます。無料で完全に機能するテストの手段があれば、実際に試した後で、その判断を中身に基づいて下せます。
これは、テストにまったく上限がないという意味ではありません。軽い本番利用をカバーする1日2,500件のリクエストが、テストもカバーします。その無料枠に対して大規模な負荷テストを行えば、小規模な本番の連携と同じ上限にぶつかります。これは意図的なものです。無料プランは本格的な評価に十分なほど気前がよいものの、無限ではありません。大量のトラフィックがある製品の恒久的なテスト環境として扱うことと、有料利用に切り替える前に連携が動くことを確認するために使うこととは、別のことです。
サンドボックスは1つの問いに正直に答えるべきです。本物を使ったときに、自分が期待するとおりに動くか、ということです。その答えに料金を課すことも、本物以外のもので答えることも、どちらにしても目的を損ないます。