2000年の初めに、Salesforceは、サービスとしてのインフラストラクチャ(IaaS)を使用したクラウド顧客関係管理ソリューションを開始しました。これは、業界と開発者が相互に通信する方法を変革した、史上初のWebベースのアプリケーションプログラミングインターフェイス(API)を使用しました。 21年後の今、Salesforceだけで毎日10億のAPI呼び出しが行われ、ほとんどすべてのソフトウェア会社がこのプロトコルを使用して情報を解析しています。 APIは、リクエストを受け取り、それらをサーバー言語に変換し、レスポンスを返すメッセンジャーです。あなたがレストランに座って、ウェイターがあなたの夕食の注文を取るときのようにそれを考えてください。彼らはメモ帳にステーキの注文を書き留め(APIリクエストが翻訳されます)、シェフが料理を作るキッチンに持っていき(プログラムが実行され)、おいしい食事を持って戻ってきます(APIレスポンス)。
WebAPIにはいくつかの異なるタイプがあります。 CoherentSparkはRESTを使用します。 RESTは、APIを定義するための一般的なアプローチです。これにより、開発はバックエンドとフロントエンドに分離されます。構築が簡単で、HTTPに緊密に連携し、サポートされているプログラミング言語の範囲を広げることで、RESTはSparkが光速のパフォーマンスと複数のシステムとの統合を実現するのに役立ちます。クイック見積もり計算機であろうとPOSシステムであろうと、SparkからのAPI応答を簡単に取り込むことができるため、Excelの価格設定モデルをWebアプリケーションに変換できます。これは、保険価格設定モデルであろうと住宅ローン計算機であろうと、ExcelファイルからAPIを作成する私たちの方法です。SparkはExcelロジックを数秒でAPIに変換できます。
APIは日常の世界でも非常に一般的です。携帯電話をざっと見てみましょう。天気アプリはAPIを呼び出してニューヨークの気温を表示します。Twitterアカウントのログインページは同じことを行って正しいアカウントを返します。Instagramボットはこのテクノロジーを使用して魅力的なアプリを追加します。関連するコメントなど。ここでは、NASAのような企業でさえAPIを使用して、たとえば宇宙のオブジェクトの位置を検出するため、文字通り空が限界です。一般に、APIは、簡単に共有できるデータにすばやくアクセスできるようにすることで効率を高めます。また、データ移行がより適切にサポートされ、コーディングの柔軟性が高くなるため、開発速度も向上します。これにより、エンドユーザーはアプリ間を移動する必要がなくなり、もちろんパフォーマンスも向上するため、生産性が向上します。 APIがなければ、オンラインメッセージング(WhatsApp、Facebook Messenger、Snapchatなど)、NetflixなどのストリーミングWebサイト、さらにはオンラインバンキングなどのクラウドベースのサーバーで実行されるすべてのサービスは存在しなくなります。また、顧客はこのアーキテクチャにますます依存するようになっているため、優れたAPIを構成するものを理解することが重要です。
強力なAPI形式を使用する
ほとんどの企業は、APIリクエストとレスポンスがどのように見えるかを規定するガイドラインに依存しています。一貫性により、最初の実装時、および開発で行われた変更時に時間と費用を節約できます。 Spark APIの応答は、すべてのユーザーが簡単に統合できるようにする構造に従います。レストランでの方法と同様に、注文されたものについてシェフに指示し、サーバーが特定の方法で料理を提示する方法があります。厳密に定義され、理解しやすく、何よりも関係者全員に知られています。 API形式は、考えられるエラーコードと警告についても言及する必要がある場合です。
データディクショナリを構築する
「データディクショナリは、プログラマーやそれらを参照する必要のある他の人の利益のために、データモデル内のデータオブジェクトまたはアイテムの説明のコレクションです。これは、APIと統合する開発者にとって唯一の真実の源となるはずです。データディクショナリが役立つ良い例は、生年月日を参照する場合です。たとえば、APIの生年月日が、あるリクエストでは「DOB」と呼ばれ、別のリクエストでは「DateOfBirth」と呼ばれる場合を想像してみてください。辞書の助けを借りて、APIリクエストフィールドのマッピングを実行するチームは、このフィールドがすべてのAPIで「Date_Of_Birth」とのみ呼ばれるようにすることができます。 Sparkでは、維持されるデータディクショナリは、すべてのAPI内のすべての要求および応答パラメーターについて、説明、許可されるデータ型、エグザンプラ値、検証などを指定します。この辞書は定期的に更新する必要があります。データディクショナリは、シェフの料理本と同じくらい重要です。
APIを保護する
レストランでの注文は、支払いを済ませることで保証され、どのテーブルに座っているかなどの詳細が記載された請求書が生成されます。これにより、レストランの他の人に食事が提供されないようになります。同様に、APIが構築されたら、それらを安全に呼び出すことが非常に重要です。たとえば、Spark APIを呼び出すために、ユーザーはOAuth2トークンをKeycloakに登録し、JWTトークンを生成できます。管理者が安全に利用できるこれらは、APIのコンテンツを表示するためのパスワードのようなものです。管理者はSparkを介してキーを管理できますが、キーは作成時に1回しか表示されません。定期的にsecrを回転させることが重要です
Sadhana Gupta
Associate Product Manager for Coherent Spark
Sadhana is a Associate Product Manager for Coherent Spark and helps build new features and updates on the platform. She has been a part of the team since it's initiation and owns vital pieces including the Spark Assistant, User Management and others. Apart from being primarily involved with the developers and designers in product development and user onboarding, Sadhana is very hands-on with the release cycle and deployment management processes for Spark and manages User Guide updates and release communications to customers!
-
This author does not have any more posts.