私の現在の雇用主は、サードパーティがホストする CRM プロバイダーを使用しており、2 つのシステム間にかなり洗練された統合層があります。CRM プロバイダーの機能の 1 つは、開発者が Java のような言語でビジネス ロジックを作成し、ユーザーがボタンをクリックしたり、新しいアカウントをシステムに送信したりするなどのイベントで、検証やビジネス ロジックを起動させることです。
私たちが利用する機能の 1 つは、ホストされたプロバイダーで実行されているビジネス コードが、ホストしている Web サービスを呼び出すことです。標準的な例として、営業担当者が新しい見込み顧客を入力し、ボタンを押してシステムに ping を送信し、電子メール アドレス、会社/名/姓などに基づいてその新しい見込み顧客を識別できるかどうかを確認し、識別できる場合は戻ってきます。その個人を表す内部 GUID。これはすべて問題なく機能しますが、正常な開発環境をセットアップして動作させるために何度も壁にぶつかりました.
したがって、私たちのユースケースは少し微妙ですが、これは一般に、サードパーティが使用する API を構築するすべての開発会社に適用でき ます。世界?
私たちのオフィスでは、すべての開発者がファイアウォールの内側にいるため、進行中のコードが外の世界 (私たちの場合は CRM プロバイダー) からアクセスされることはありません。ファイアウォールに穴を開けることはできますが、セキュリティ面の観点からは理想的とは言えません。特に、DMZ のようなエリアにいる必要がある開発者の数が多い場合。現在、DMZ で単一の開発マシンを試し、開発作業を行うために必要に応じてそこにリモート接続していますが、複数の開発者がボックスを必要とする場合、ましてや競合する可能性のある変更 (たとえば、異なるブランチ)。
これらのサービス用に偽のクライアントを構築することで、着信リクエストを単に偽装/偽装することを検討しましたが、これは機能セットを構築する上でかなり大きなオーバーヘッドです (ただし、本質的に API のテスト可能性を強化します)。これはまた、偽のリクエストペイロードではなく、実際のクライアント自体から発生する問題を診断/デバッグする必要がある場合があるという事実を回避するものではありません。
これらのタイプのシナリオで他の人は何をしましたか? マッシュアップのこの時代には、API を開発した経験のある人がたくさんいるに違いありません。