共創 GraphQL 連携
カスタムファンクションから共創の GraphQL API にリクエストを送信し、データを取得することができます。
KyosoGraphQLClient クラスの利用
KyosoGraphQLClientクラスを使用します。
- 認証情報(KyosoGraphQLClientConfig)を渡して
new KyosoGraphQLClient(config)でインスタンスを生成する - そのインスタンスの
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クラス。インスタンス化して使用してください。