Web 要求の概要
このトピックでは、Microsoft Game Development Kit (GDK) タイトルへのハイパーテキスト転送プロトコル (HTTP) および WebSocket Web 要求の概要を説明します。
適切な API セットから始めることで、Xbox 要件 (XR) に準拠した安全な通信を簡単に実装することができます。
Xbox 本体および Windows 10 PC
セキュリティ要件を遵守するために、以下の API の使用をお勧めします。 Web 要求の実装を簡略化するのにも役立ちます。
ユース ケース | 推奨される API |
---|---|
ゲーム ランタイム サービス (GRTS) スタイルの API を使用した REST 要求 | Microsoft Xbox Live Service API (XSAPI) |
汎用 HTTP 要求 | xCurl |
WebSocket 要求 | libHttpClient |
Windows HTTP サービス (WinHTTP)
WinHTTP は、コードを変更することなく、PC と Xbox 本体の両方で HTTP および WebSocket サービス エンドポイントを作成するためにも使用できます。 この API はすべてのセキュリティのベスト プラクティスを自動的に処理するわけではないため、実装の安全性と堅牢性を確保する方法については、必ず「通信セキュリティの概要 (NDA トピック)認可が必須です」と「 WinHTTP の概要」をお読みください。
xCurl の利点は、証明書チェーンの検証やネットワーク接続のチェックなど、セキュリティのベスト プラクティスを処理できることです。 これが、汎用 HTTP 要求に xCurl をお勧めする理由です。
注意:
- Xbox 本体向けのタイトルを開発する場合、WinHTTP または xCurl を使用する必要があります。 カスタム HTTP スタックの実装は許可されていません。 詳細については、Xbox コンソール ゲームの Xbox 要件 の [セキュリティ] の下にある「XR-134: Web プロトコルを使用したデータ転送」を参照してください。
- PC 用のタイトルを開発する場合は、その他のオプションがあります。 一汎用 HTTP 要求には、libCurl やその他の HTTP スタックを Microsoft Game Development Kit (GDK) タイトルで直接使用することもできます。
xCurl
xCurl は、Microsoft Game Development Kit (GDK) タイトルの HTTP 要求に推奨される API です。 XCurl は、すべてのセキュリティおよびベスト プラクティスを自動的に遵守することで、タイトル開発を簡略化します。 API サーフェイスは libCurl と大まかに一致しているため、libCurl の完全な柔軟性と HTTP 機能セットも備えています。
xCurl API の詳細や、xCurl と libCurl の違いについては、xCurl の概要を参照してください。
XSAPI
Xbox Services API (XSAPI) では、Microsoft Game Development Kit (GDK) タイトルに完全に準拠した汎用 REST ラッパーを提供します。 このラッパーの使い方は簡単で、Microsoft Game Development Kit (GDK) 非同期APIモデルに準拠します。 タイトルが REST HTTP 要求のみを行う必要がある場合、これが使用するのに最も単純な完全準拠のインターフェースである可能性があります。
-
XblHttpCallCreate を使用して、
REST
要求を追跡するための HTTP ハンドルを作成します。 - いずれかの
XblHttpCallRequestSet*
関数で本体と追加設定を構成します。 - XblHttpCallPerformAsync 呼び出しで、要求を行います。
- 応答を取得するには、いずれかの
XblHttpCallGet*
関数を使用します。 - XblHttpCallCloseHandle を使用してハンドルを閉じます。
注意
XblHttpCallRequestSet*
および XblHttpCallGet*
は、HTTP 要求を作成して HTTP 応答を取得するための関数のグループを表しています。
libHttpClient
libHttpClient は、双方向の通信を可能にするよう設計されています。 これは、Xbox Live サービス API (XSAPI) で使用するために設計された抽象化レイヤーで、HTTP と WebSocket のサービス エンドポイントを有効にします。 この API は、XSAPI の一部としてゲーム開発キット (GDK) に含まれています。