注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
permission types セクションで説明されているように、オントロジー SDK はエンドユーザーの権限ではなく、サービスユーザーの権限に基づいてデータをクエリするために使用できます。以下のウォークスルーでは、Next.js© ↗ (外部リンク) を使用して、オントロジー SDK とサービスユーザーを使用してデータを取得する方法を示します。
機密クライアントを使用するサービスやアプリケーションを開発する場合、サービスユーザーはユーザーの Developer Console アプリケーションと共に作成されます。デフォルトの組織とは別の組織に属するオントロジーを使用してアプリケーションを作成する場合は、アプリケーションを共有および有効にする手順を完了する必要があります。
Foundry インスタンス内で Developer Console に移動 し、+ New application を選択します。
+ New application ボタンが表示されない場合、適切な権限を持っていない可能性があります。詳細については、permissions documentation を参照してください。
作成ウィザードの手順に従い、以下の詳細を追加します。
Developer Console は、アプリケーション名に基づいてこのアプリケーションのサービスユーザーを作成します。上記の例では、生成されたサービスユーザーの名前は Ontology SDK application using service user です。どのアクションタイプに対してもsubmission criteria に加えて、次のステップで選択するオブジェクトタイプのデータを読み取る権限をこのサービスユーザーに付与する必要があります。
入力した情報を確認し、Create application を選択して新しいアプリケーションのクライアントシークレットを表示します。このシークレットは一度しか表示されないため、安全にコピーして保存します。
クライアントシークレットを紛失した場合は、Permissions & OAuth ページで新しいシークレットを回転させて取得できます。これにより、このサービスユーザーとシークレットを使用する既存のアプリケーションが破損することに注意してください。
最後に、Generate first version を選択して新しく作成したオントロジー SDK を使用します。
オントロジー SDK の生成が完了すると、生成された SDK をコードプロジェクトにインストールするための手順が表示されます。
このウォークスルーでは、Next.js© ↗ を使用します。Next.js はサーバーサイドでコードをレンダリングすることをサポートしており、サービスユーザーの例に必要です。新しい Next.js プロジェクトをブートストラップするには、Next.js© documentation ↗ に従います。
サービスユーザー認証は、ユーザー認証を必要とせずにクライアントシークレットを使用してオントロジーにアクセスできる機密 OAuth クライアントを通じて行われます。
client.ts
という名前のファイルを作成し、次のコードを入力します。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
import { createConfidentialOauthClient } from "@osdk/oauth"; import { createClient } from "@osdk/client"; // 機密OAuthクライアントを作成する export const auth = createConfidentialOauthClient( process.env.CLIENT_ID!, // 環境変数からクライアントIDを取得 process.env.CLIENT_SECRET!, // 環境変数からクライアントシークレットを取得 process.env.STACK_URL!, // 環境変数からスタックURLを取得 ); // クライアントを作成する export const client = createClient( process.env.STACK_URL!, // 環境変数からスタックURLを取得 <ONTOLOGY-RID>, // ONTOLOGY-RIDを指定(適切な値をここに入れる必要があります) auth // 認証情報を渡す )
.env
ファイルを同じ変数で作成します。このファイルをコードリポジトリにチェックインしないでください。
Copied!1 2 3
CLIENT_ID=<YOUR CLIENT ID> # あなたのクライアントIDを入力してください CLIENT_SECRET=<YOUR CLIENT SECRET> # あなたのクライアントシークレットを入力してください STACK_URL=<YOUR ONTOLOGY SERVER DOMAIN NAME> # あなたのオントロジーサーバードメイン名を入力してください (例: https://myfoundrystack.com)
以下のコードは、@serverside-osdk-example/sdk
パッケージ名を持つ Country
オブジェクトタイプを使用しています。例のパッケージ名とオブジェクトタイプを、ユーザーが作成したパッケージ名と選択したオブジェクトタイプに置き換えてください。最後に、{country.countryName}
をユーザーのオブジェクトタイプのプロパティに置き換えてください。
page.tsx
のコードを以下のように置き換えてください:
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
import { Country } from "@serverside-osdk-example/sdk"; import { client, auth } from "./client"; import { Osdk } from "@osdk/client"; async function getCountries(): Promise<Osdk.Instance<Country>[]> { // 認証を処理する await auth.signIn(); // サービスユーザーにオントロジーの読み取りアクセスを付与する必要があります try { const resp = await client(Country).fetchPage(); return resp.data; } catch (err) { // エラーが発生した場合はコンソールにログを出力する console.log(err); } console.log("No countries found"); return []; }; export default async function Home() { // 国のデータを取得する const countries: Osdk.Instance<Country>[] = await getCountries(); return ( <main> <div> {countries.map((country: Osdk.Instance<Country>) => ( // country の $primaryKey をキーにして、国名を表示する <span key={country.$primaryKey}>{country.countryName}</span> ) )} </div> </main> ) }
セットアップのデモを実行するには、まず開発サーバーを実行してください。
Copied!1
npm run dev
Copied!1 2
# npm run dev コマンドは、開発サーバーを起動するために使用されます。 # 通常、ローカル環境での開発を行う際に利用されます。
次に、ブラウザーで http://localhost:3000 ↗ にアクセスして結果を確認してください。