Netlify Graph では、Webアプリを構築するための新しいGraphQLベースのアプローチを提供する。異なるAPIを統合して、さまざまなデータモデル、応答形式、認証スキームなどを混合する際の固有の複雑さ軽減を追求する。InfoQは、Netlifyのエコシステム責任者であるDen Delimarsky氏と話をした。
Netlifyの共同創設者兼CEOのMatt Biilmann氏によると、Netlify Graphを使用する主な利点は、外部APIの使用を開始するまでにかかる時間を短縮できることである。開発者がグルーコードを記述したり、異種APIから複数のエンドポイントを作成したりする必要はない。
現在、Netlify Graphは、GitHub、Stripe、Salesforceなどの多くの一般的なAPIと統合されており、今後数か月でさらに追加される予定である。
InfoQは、Netlify Graphの詳細について、エコシステムの責任者であるDen Delimarsky氏と話をした。
InfoQ: 新たなNetlify Graphが開発者のために解決しようとしている問題について説明していただけますか。
Delimarsky: 私たちは、開発者がWebアプリケーションを一から構築しなければならなかった時代から、ほぼすべての機能に対して事前に構築されたAPIが存在する時代に移行しつつあります。しかし、新しい問題が出てきました。多くの開発者は、これらすべてのAPIを接続して操作するプロセスにより、古い複雑さが新しい複雑さに置き換わっていることを発見しました。既存のインフラストラクチャにプラグインするのが難しいさまざまなデータモデル、さまざまな応答形式、そして、カスタム認証やクエリ要件です。
APIを1つの中央グラフに統合するGraphQLを利用したアプローチにより、開発者が簡単にサービスをつなぎ合わせてリッチWebアプリケーションを作成できると考えています。その際、製品に含める必要のあるすべてのサービスに対して、同じインフラストラクチャを再実装する必要はありません。
InfoQ: Netlify Graphを使ってAPIをアプリと統合するために開発者が実行する必要のある重要な手順はどれですか。
Delimarsky: Netlify Graphを使うと、開発者は、競合との差別化にならないコードを記述したり、使用するAPIのすべての固有の構造を学習したり、複数のインターフェースからWebアプリケーションにデータを取得するために終わりのない数のエンドポイントを作成したりすることなくAPIを使い始めることができます。
開発者がNetlify Graphを使ってAPIをアプリに統合するために実行できる主な手順は次のとおりです。
Netlifyサイトダッシュボードを通して、APIをNetlify Graphに接続します。これは1回の直感的なステップとなります。APIを接続すると、サイトのグラフで自動的に有効になり、すぐにWebアプリケーションに統合できるようになります。
Netlify Graphが登場する前は、単一のAPIで認証するプロセスは長く、フラストレーションと潜在的なセキュリティ上の懸念がありました。たとえば、新しいAPIで認証するには、開発者は通常、ドキュメントを読んでその認証フローについて学び、SDK(標準化されていなかったり、存在しなかったり、または非公式のソースによってメンテナンスされている可能性がある)を見つけてインポートする必要があります。そして、どのようにして、SDKで認証し、APIの安全なトークンを生成し、トークンを安全に保持し、正しく機能することを確認するテストを行い、そして最後にSDKからのデータの取得を開始するかを明らかにする必要があります。
組み込みのGraph Explorerを使って、一か所にあるすべてのAPIを探索し、クエリを構築し、サービスデータモデルを組み合わせ、サーバーレス関数コードを生成します。これにより、コードをゼロから書き直さずにGraphQLクエリを呼び出すことができます。
Netlify Graphの前は、認証されたAPIからアプリにデータを取得するプロセスは多大な努力が必要でした。多くの場合、単一のAPIから必要となるデータは複数の場所にあります。すべてのドキュメントが同じように優れているわけではないため、データが存在する場所を見つけるには、既存のサンプルを探し回るだけでなく、戻ってくるものをテストするためのコードを作成する必要があります。開発者は、アプリケーションで使用されるすべてのAPIでこのプロセスを繰り返す必要がありました。これは、フローの管理をシンプルにすると同時に、返されるデータを制御するのに十分な柔軟性を提供できる統合レイヤーがなかったためです。
InfoQ: Netlify Graphは他のNetlifyプラットフォームとどのように統合されますか。
Delimarsky: 私たちの使命は、Jamstackのツール、API、プラットフォームを統合して、シンプルでまとまりのある生産的な開発者ワークフローにすることです。これによって、チームがトップクラスのWebアプリケーションを迅速かつ簡単に構築できるようになる。Netlify Graphは、その使命に完全に適合するNetlifyワークフローの重要なコンポーネントです。これは、APIを統合してトップクラスのWebアプリを簡単に構築できるようにすることで、開発者の生産性を高める役に立ちます。これは、開発者がすでにNetlify機能を使用している場所に統合されています。それは、Webインターフェイス、コマンドラインツール(CLI)、広く配布されているNetlifyパッケージです。
InfoQ: APIをNetlifyと統合するために、関心を持っているパートナーが満たすべき要件は何ですか。
Delimarsky: 私たちは、インテグレーションをさらに追加することを見据えています。Netlify Graphはまだベータ版ですが、パートナーインタレストフォームに記入することをお勧めします。そこから、詳細をフォローし、技術要件を確認します。ユーザからのリクエストがある場合は、Netlifyサポートフォーラムでお問い合わせいただくこともできます。
Netlify Graphは現在、すべてのNetlifyユーザがパブリックベータとして利用できる。