Skip to main content

REST APIリファレンス

REST APIは、APIエンドポイントを通じてコンテンツタイプにアクセスすることを可能にします。AI Marketerは、content-typeが作成されると自動的にAPIエンドポイントを作成します。APIパラメータは、APIエンドポイントを要求する際に、結果を絞り込むために使用することができます。

このドキュメンテーションのセクションは、REST APIリファレンスのためのものです。

✏️ Note

デフォルトでは、REST APIのレスポンスはトップレベルのフィールドのみを含み、関連性、メディアフィールド、コンポーネント、またはダイナミックゾーンは展開されません。特定のフィールドを展開するには、[populate パラメータ]を使用してください。展開する関連性のフィールドに対してfind権限が与えられていることを確認してください。

エンドポイント

各Content-Typeに対して、以下のエンドポイントが自動的に生成されます:

複数形のAPI IDと単数形のAPI ID:
以下の表では:
  • :singularApiIdはcontent-typeの"API ID (Singular)"フィールドの値を指します。
  • :pluralApiIdはcontent-typeの"API ID (Plural)"フィールドの値を指します。

これらの値は、コンテンツタイプビルダーでコンテンツタイプを作成する際に定義され、管理パネルでコンテンツタイプを編集する際に見つけることができます(ユーザーガイドを参照してください)。例えば、デフォルトでは、"Article" content-typeでは:

  • :singularApiIdarticleになります
  • :pluralApiIdarticlesになります
メソッドURL説明
GET/api/:pluralApiIdドキュメントのリストを取得する
POST/api/:pluralApiIdドキュメントを作成する
GET/api/:pluralApiId/:documentIdドキュメントを取得する
PUT/api/:pluralApiId/:documentIdドキュメントを更新する
DELETE/api/:pluralApiId/:documentIdドキュメントを削除する
✏️ Note

コンポーネントはAPIエンドポイントを持っていません。

リクエスト

リクエストは、通常以下のキーを含むオブジェクトとしてレスポンスを返します:

  • data:レスポンスデータそのもので、以下のいずれかとなります:

    • 単一のドキュメント。以下のキーを持つオブジェクト:
      • id(整数)
      • documentId(文字列)、これは特定のドキュメントを問い合わせる際に使用する一意の識別子です。
      • 属性(各属性のタイプは属性によります、詳細はモデル属性のドキュメンテーションを参照してください)
      • meta(オブジェクト)
    • ドキュメントのリスト。オブジェクトの配列
    • カスタムレスポンス
  • meta(オブジェクト):ページネーション、公開状態、利用可能なロケールなどについての情報。

  • error(オブジェクト、オプション):リクエストによってスローされたエラーに関する情報。

ドキュメントの取得

クエリフィルタに一致するドキュメントを返します。

Example request

GET http://localhost:1337/api/restaurants

Example response
{
"data": [
{
"id": 2,
"documentId": "hgv1vny5cebq2l3czil1rpb3",
"Name": "japan restaurant",
"Description": null,
"createdAt": "2024-03-06T13:42:05.098Z",
"updatedAt": "2024-03-06T13:42:05.098Z",
"publishedAt": "2024-03-06T13:42:05.103Z",
"locale": "en"
},
{
"id": 4,
"documentId": "znrlzntu9ei5onjvwfaalu2v",
"Name": "USA Restaurant",
"Description": [
{
"type": "paragraph",
"children": [
{
"type": "text",
"text": "Welcome to restaurant!"
}
]
}
],
"createdAt": "2024-03-06T13:43:30.172Z",
"updatedAt": "2024-03-06T13:43:30.172Z",
"publishedAt": "2024-03-06T13:43:30.175Z",
"locale": "en"
}
],
"meta": {
"pagination": {
"page": 1,
"pageSize": 25,
"pageCount": 1,
"total": 2
}
}
}

ドキュメントの取得

documentIdによるドキュメントの取得。

例:リクエスト

GET http://localhost:1337/api/restaurants/j964065dnjrdr4u89weh79xl

例のレスポンス
{
"data": {
"id": 6,
"documentId": "znrlzntu9ei5onjvwfaalu2v",
"Name": "Japan Restaurant",
"Description": [
{
"type": "paragraph",
"children": [
{
"type": "text",
"text": "Welcome to restaurant!"
}
]
}
],
"createdAt": "2024-02-27T10:19:04.953Z",
"updatedAt": "2024-03-05T15:52:05.591Z",
"publishedAt": "2024-03-05T15:52:05.600Z",
"locale": "en"
},
"meta": {}
}

ドキュメントの作成

ドキュメントを作成し、その値を返します。

デフォルトでは、ドキュメントは公開ステータスで作成されます。ドラフトとしてドキュメントを作成するには、status クエリパラメータを draft の値で渡します(例:?status=draft)。

✏️ Note

ドキュメントを作成する際、その関連性と順序を定義することができます。

例のリクエスト

POST http://localhost:1337/api/restaurants

{ 
"data": {
"Name": "Restaurant D",
"Description": [ // "Rich text (blocks)"フィールドタイプを使用
{
"type": "paragraph",
"children": [
{
"type": "text",
"text": "ここに説明を入力します。"
}
]
}
]
}
}
例のレスポンス
{
"data": {
"documentId": "bw64dnu97i56nq85106yt4du",
"Name": "Restaurant D",
"Description": [
{
"type": "paragraph",
"children": [
{
"type": "text",
"text": "ここに説明を入力します。"
}
]
}
],
"createdAt": "2024-03-05T16:44:47.689Z",
"updatedAt": "2024-03-05T16:44:47.689Z",
"publishedAt": "2024-03-05T16:44:47.687Z",
"locale": "en"
},
"meta": {}
}

ドキュメントの更新

idによってドキュメントを部分的に更新し、その値を返します。

フィールドをクリアするには null 値を送信します。

✏️ ノート
  • 変更されていないフィールドもリクエストのボディに含める必要があります。
  • ドキュメントを更新する際に、その関連性と順序を定義することができます。
リクエスト例

PUT http://localhost:1337/api/restaurants/hgv1vny5cebq2l3czil1rpb3

{ 
"data": {
"Name": "AI Marketer", // このフィールドは変更していませんが、それでも含める必要があります
"Description": [ // "Rich text (blocks)" フィールドタイプを使用
{
"type": "paragraph",
"children": [
{
"type": "text",
"text": "ここに説明を入力します。"
}
]
}
]
}
}
レスポンス例
{
"data": {
"id": 9,
"documentId": "hgv1vny5cebq2l3czil1rpb3",
"Name": "AI Marketer",
"Description": [
{
"type": "paragraph",
"children": [
{
"type": "text",
"text": "ここに説明を入力します。"
}
]
}
],
"createdAt": "2024-03-06T13:42:05.098Z",
"updatedAt": "2024-03-06T14:16:56.883Z",
"publishedAt": "2024-03-06T14:16:56.895Z",
"locale": "en"
},
"meta": {}
}

ドキュメントの削除

ドキュメントを削除します。

DELETEリクエストは成功時にのみ204のHTTPステータスコードを送信し、レスポンスボディにはデータを返しません。

リクエスト例

DELETE http://localhost:1337/api/restaurants/bw64dnu97i56nq85106yt4du