メインコンテンツまでスキップ

共創 GraphQL 連携

カスタムファンクションから共創の GraphQL API にリクエストを送信し、データを取得することができます。

KyosoGraphQLClient クラスの利用

KyosoGraphQLClientクラスを使用します。

  1. 認証情報(KyosoGraphQLClientConfig)を渡してnew KyosoGraphQLClient(config)でインスタンスを生成する
  2. そのインスタンスのexecuteメソッドでクエリを実行する
ヒント

認証情報はカスタムシークレットから取得して使用することを推奨します。
実装時は try-catch でエラーをログに出すとデバッグしやすくなります。
共創プラットフォームに対しての API リクエストの詳細については共創プラットフォームのホワイトペーパーを参照ください。

警告

baseUrl には以下の制約があります:

  • http または https のプロトコルのみ使用可能です
  • ローカルホスト(localhost, 127.0.0.1 等)は使用できません
  • プライベート IP アドレス(10.x.x.x, 192.168.x.x 等)は使用できません
  • 内部ネットワークへのアクセスは禁止されています
    これらに該当する URL を指定した場合はエラーになります。

実装例

インスタンスを生成し、複数回executeを呼び出す例です:

// インスタンスを生成
const client = new KyosoGraphQLClient({
clientId: 'KYOSO_CLIENT_ID',
clientSecret: 'KYOSO_CLIENT_SECRET',
baseUrl: 'KYOSO_BASE_URL',
apiKey: 'KYOSO_API_KEY',
})

// GraphQLクエリ(ページネーション用変数: first, after)
const query = `
query ListShainJoho($input: ShainJohoSearchInput, $first: Int, $after: String) {
listShainJoho(input: $input, first: $first, after: $after) {
totalCount
pageInfo {
endCursor
hasNextPage
}
edges {
node {
id
shainId
}
}
}
}
`
try {
// 1ページ目を取得
const firstPage = await client.execute({
query,
variables: {
input: null,
first: 10,
},
})
// 2ページ目を取得(前ページのendCursorをafterに渡す)
const nextPage = await client.execute({
query,
variables: {
input: null,
first: 10,
after: firstPage.data?.listShainJoho?.pageInfo?.endCursor,
},
})
} catch (error) {
logger.error('エラーが発生しました', { error })
}

詳しくはAPI ドキュメントを参照してください。

📄️KyosoGraphQLClient

共創GraphQLクラス。インスタンス化して使用してください。