Consuming APIs
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

APIヘッダーリファレンス

APIヘッダーはHTTPリクエストの構成要素であり、クライアントのリクエストに関する重要な情報と、サーバーがそれをどのように処理すべきかを示すものです。

API ヘッダーは、 REST APIGraphQL の両方に使用できます。

REST APIの場合、cURLコマンドを使用してヘッダーを含めることができます。 必要なヘッダーを指定するには、 --header "Header: Value" 構文を使用します。 含めるヘッダーは、操作する特定のREST APIと、それがサポートする認証メカニズムによって異なります。

GraphQLの場合、GraphQLブラウザインターフェースを通してヘッダーのキーと値のペアを直接入力できます。 あるいは、cURL コマンドを使用する方がよければ、 --data パラメーターを使用して GraphQL クエリを含めることができ、各ヘッダーには --header "Header: Value" 構文を使用して必要なヘッダーを含めることができます。

以下は、GraphQLリクエストを行うcURLコマンドの例です。

curl \
   http://localhost:8080/o/graphql \
   --data '{"query":"{ blogPostings(filter: \"\", page: 1, pageSize: 10, search: \"\", siteKey: \"20117\", sort: \"\") { page items { id articleBody headline creator { name } } } }"}' \
   --header "content-type: application/json" \
   --request POST \
   --user test@liferay.com:learn

ヘッドレスAPIリクエストを行う際に使用できるヘッダーは以下のとおりです。

許可する

Accept ヘッダーは、クライアントがサーバーからの応答で受信できるメディアタイプを指定します。 通常、クライアントが処理できる型の一覧が含まれています。 有効なオプションは json (デフォルト) および xml です。

以下は、 http://example.com/o/headless-admin-user/v1.0/user-accounts に対して GET リクエストを行い、クライアントがレスポンスで XML 形式のデータを受け入れることを指定するヘッダーを含む cURL コマンドの例です。

curl \
	"http://example.com/o/headless-admin-user/v1.0/user-accounts" \
	--header "Accept: application/xml" \
	--request "GET" \

Accept-Language

Accept-Language ヘッダーは、クライアントが優先する自然言語を指定します。通常はレスポンスコンテンツに使用される言語です。サーバーは、利用可能な場合は優先言語でコンテンツを返します。

有効な言語タグ(ISO-639言語識別子とISO-3166-1 alpha-2国識別子)はすべて有効なオプションです(例: en-USes-ES、または pt-BR)。

選択された言語の値が空の場合、クエリはデフォルト言語で結果を返します。

以下は、応答コンテンツの優先言語としてブラジルポルトガル語を指定するcURLコマンドの例です。

curl \
	"http://example.com/o/c/customobjects/" \
	--header "Accept: application/json" \
	--header "Accept-Language: pt-BR" \
	--request "GET" \
ヒント

Liferay DXP 2024.Q2/Portal GA120から、Rest APIとGraphQLの両方でAccept-Languageヘッダーを使用し、カスタムオブジェクトを扱うときに選択した言語で値を返すようになりました。

警告

Liferay DXP 2024.Q2+/Portal GA120+ では、カスタム オブジェクトのフィールドで エントリ翻訳を有効にする オプションがオフになっている場合、そのフィールドは複数の言語への翻訳をサポートしません。 デフォルト以外の言語の値を保存し、言語を指定せずにそのフィールドを照会した場合、応答は空になります。 これは、デフォルトの言語値がフォールバックとして自動的に使用されないために発生します。 応答には、クエリした言語に対応する値のみが含まれます。

ウェブコンテンツの翻訳が期待通りに動作するように、サーバーの設定でAccept-Languageヘッダーがallow-listedになっていることを確認してください。 この設定により、サーバーは言語ベースのコンテンツ配信のためのヘッダーを認識して処理することが保証されます。

X-Accept-All-Languages

X-Accept-All-Languages ヘッダーは、クライアントが利用可能なすべての言語でコンテンツを返すように要求していることをサーバーに示します。 このヘッダーは、標準の Accept-Language ヘッダーを超える拡張機能であり、クライアントがこの動作を明示的に指定できるようにします。

利用可能なすべての言語でコンテンツを返すには、パラメータとして true を使用し、それ以外の動作 (デフォルトの動作) を行うには、 false を使用します。

以下は、 example.com/o/headless-admin-user/v1.0/user-accountsにリクエストを送信し、サーバーが要求されたコンテンツを利用可能なすべての言語で返すように指定する cURL コマンドの例です。

curl \
	"http://example.com/o/headless-admin-user/v1.0/user-accounts" \
	--header "X-Accept-All-Languages: true" \

認可

Authorization ヘッダーは、認証目的の資格情報を提供します。 クライアントは、基本認証、ベアラートークン、OAuthトークンなど、さまざまな認証メカニズムを使用してサーバーに対して認証を行うことができます。

Liferayでは、AuthorizationヘッダーはDXPの認証フレームワークを使用して、どのユーザーがリクエストを行っているかを識別します。 このヘッダーと Cookie ヘッダーの両方が提供されない場合、リクエストはゲスト (認証されていない) ユーザーとして試行されます。

Authorizationヘッダーの有効なオプションとしては、Base64エンコードされた認証情報を使用した基本認証、またはOAuthトークンを使用したベアラートークンが挙げられます。

以下は、 http://example.com/o/c/customobjects/ への GET リクエストを指定し、Bearer トークン方式を使用して認証トークンを提供する cURL コマンドの例です。

curl \
	"http://example.com/o/c/customobjects/" \
	--header "Accept: application/json" \
	--header "Accept-Language: pt-BR" \
	--header "Authorization: Bearer YOUR_ACCESS_TOKEN_HERE" \
	--request "GET" \

Cookie ヘッダーは、サーバーが以前に保存した Cookie をクライアントのブラウザに送信し、サーバーがセッション状態を維持し、複数のリクエストにわたってユーザーのアクティビティを追跡できるようにします。

Liferayでは、Cookieヘッダーは JSESSIONID という値を使用し、DXPの認証フレームワークを使用してユーザーのセッションを識別および追跡します。 これと 認証 の両方が指定されていない場合、リクエストはゲスト (認証されていない) ユーザーとして試行されます。

以下は、指定された URL に対して GET リクエストを実行し、 JSESSIONID の値を持つ Cookie ヘッダーを含める cURL コマンドの例です。

curl \
	"http://example.com/o/headless-admin-user/v1.0/user-accounts" \
	--header "Authorization: Bearer YOUR_ACCESS_TOKEN_HERE" \
	--header "Cookie: JSESSIONID=6349351B37C3EE1F6BA4E128107E9A34" \
	--request "GET" \

Content-Type

Content-Type ヘッダーは、クライアントからサーバーに送信されるリクエストペイロードのメディアタイプを示し、サーバーがそれに応じてデータを処理できるようにします。

Liferayでは、バイナリデータを multipart/form-dataとしてアップロードできます。

以下は、 http://example.comに POST リクエストを送信し、 myfile.txt という名前のファイルを添付する cURL コマンドの例です。 このコマンドには、リクエスト本文が multipart/form-data の形式でフォーマットされ、ファイルやその他のデータフィールドをメッセージの一部として送信することを指定するヘッダーが含まれています。

curl \
	"http://example.com" \
	--form "file=@myfile.txt" \
	--header "Content-Type: multipart/form-data; boundary=ARBITRARY" \
	--request "POST" \