別サービスで類似のAPIを作成する場合などのため、microCMSではAPIスキーマのエクスポート/インポートに対応しています。
APIスキーマをJSONファイルとしてエクスポートし、APIの作成時にこのJSONファイルをインポートすることで手動による設定を省くことができます。
APIを利用してAPIスキーマを取得することもできます。
詳しくは、マネジメントAPIのドキュメントをご覧ください。
まずはエクスポート方法について説明します。
APIスキーマをエクスポートしたいコンテンツを選択し、「API設定」→「APIスキーマ」を選択してください。
次に画面の下部に「この設定をエクスポートする」というボタンが表示されているのでこちらをクリックしてください。
エクスポート結果であるJSONファイルをダウンロードできます。
権限によってはこちらの画面に到達できないことや、下記のインポート操作ができない場合があります。
そのような場合には権限管理状態をご確認いただくか、サービスの管理者様にお問い合わせください。
まずはインポート方法について説明します。
管理画面左部にあるメニュー欄の①よりAPIの作成を開始します。
APIの基本情報の入力やAPIの型選択をした後に、下記の「APIスキーマを定義」の画面が表示されるので、②の「ファイルインポートする場合はこちらから」のリンクからファイルを選択してください。
インポートに使用するJSONファイルは、以下のいずれかの方法で用意します。
既存のAPIスキーマをエクスポートし、そのJSONファイルをそのままインポートする方法です。別プロジェクトや別環境へスキーマを複製する際に適しています。
特定のフィールド構成を自由に構築したい場合、本ドキュメントの仕様に沿ってJSONファイルを作成できます。
ゼロから作成すると構造エラーが起きやすいため、以下のJSONをダウンロードし、編集して利用することを推奨します。
インポート用JSONは、フィールドを定義するための配列 apiFields と、カスタムフィールドを定義するための配列 customFields の2つで構成されます。
以下はJSONデータの例です。
{
"apiFields": [
{
"fieldId": "title",
"name": "タイトル",
"kind": "text",
"description": null,
"required": false,
"textSizeLimitValidation": null,
"patternMatchValidation": null,
"isUnique": false,
"initialValue": null
},
{
/* 2つ目以降の通常フィールドをここに追加します */
}
],
"customFields": [
{
"fieldId": "profile",
"name": "プロフィール",
"fieldOrderByColumn": [["name"], ["bio"]],
"fields": [
{
"fieldId": "name",
"name": "名前",
"kind": "text",
"description": null,
"required": false,
"textSizeLimitValidation": null,
"patternMatchValidation": null,
"isUnique": false,
"initialValue": null
},
{
"fieldId": "bio",
"name": "自己紹介",
"kind": "textArea",
"description": null,
"required": false,
"textSizeLimitValidation": null,
"patternMatchValidation": null,
"initialValue": null
},
{
/* このカスタムフィールド内の3つ目以降のフィールドをここに追加 */
}
]
},
{
/* 2つ目以降のカスタムフィールドを定義する場合は、ここに追加します */
}
]
}各フィールド・カスタムフィールドに指定できるプロパティや制約は、マネジメントAPI POST /api/v1/apis のリクエストボディで指定する apiFields / customFields と概ね共通です。
詳しくは、以下のドキュメントをご参照ください。
コンテンツ参照・複数コンテンツ参照フィールドでは、referencedApiEndpoint に参照先APIのエンドポイントを指定します。
マネジメントAPIのAPI作成リクエストでは参照先APIの指定が必須ですが、インポート用JSONでは referencedApiEndpoint に null を指定して読み込むことができます。
参照先APIを指定せずにインポートした場合は、インポート後に管理画面から参照先APIを設定してください。
カスタムフィールドや繰り返しフィールドの構築では、階層的なデータ構造を正確に定義する必要があります。ゼロからの作成による構造エラーを防ぎ、よりスムーズに設定を進めるためのベースとして、以下の構成済みサンプルJSONをご活用ください。