logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll
09/04/2025, by Ivan

このページでは、JSON:APIモジュールのPATCHリクエストの例を示します。

更新操作の有効化

/admin/config/services/jsonapiにアクセスし、
「Accept all JSON:API create, read, update, and delete operations.(すべてのJSON:APIの作成、読み取り、更新、削除操作を受け入れる)」オプションをオンにします。

jsonapi-accept-create-read-update-delete

認証

通常、PATCHリクエストには何らかの認証が使用されます。以下の例はすべてBasic認証を使用しています。HTTP Basic Authenticationモジュールを有効にし、APIユーザー(およびロール)のパーミッションを設定し、エンコードされたユーザー名とパスワードを「Authorization」リクエストヘッダーに追加します。

このページのヘッダーの例では、パスワード「api」のDrupalユーザー「api」が必要です。このユーザーには、要求されたコンテンツを更新するパーミッションが必要です。

ヘッダー

適切なJSON:APIリクエストとレスポンスを得るには、次のヘッダーがすべてのPATCHリクエストで必須です。

  • Accept: application/vnd.api+json
  • Content-Type:application/vnd.api+json

例を機能させるには、次のヘッダーが必要です。

  • Authorization:Basic VALUE

アプリケーションでコマンドラインを使用して、上記のVALUEを取得できます。

echo -n "USERNAME:PASSWORD" | base64 -w0

BASICの後に上記の返された値を使用します。この例では、api:apiの資格情報はYXBpOmFwaQ==を返すため、ヘッダーは次のようになります。

Authorization:Basic YXBpOmFwaQ==

基本的なPATCHリクエスト

URL: http://example.com/jsonapi/node/article/{{article_uuid}}

リクエストボディ

{
  "data": {
    "type": "node--article",
    "id": "{{article_uuid}}",
    "attributes": {
      "title": "My updated title"
    }
  }
}

「id」は必須です。更新する属性を追加します。

レスポンス

HTTP 200レスポンス。更新されたエンティティのJSON:APIレスポンスを含むレスポンスボディ。

より多くの属性を含むPATCH

URL: http://example.com/jsonapi/node/article/{{article_uuid}}

リクエストボディ

{
  "data": {
    "type": "node--article",
    "id": "{{article_uuid}}",
    "attributes": {
      "title": "My updated title",
      "body": {
        "value": "Updated body text",
        "format": "plain_text",
        "summary": "Updated summary"
      }
    },
    "relationships": {
      "uid": {
        "data": {
          "type": "user--user",
          "id": "{{user_uuid}}"
        }
      }
    }
  }
}

レスポンス

HTTP 200レスポンス。更新された本文、サマリー、および著者が更新されたエンティティを含むレスポンスボディ。

リレーションシップを削除するPATCH

{
  "data": {
    "type": "node--article",
    "id": "{{article_uuid}}",
    "attributes": {
      "title": "My updated title",
      "body": {
        "value": "Updated body text",
        "format": "plain_text",
        "summary": "Updated summary"
      }
    },
    "relationships": {
      "my_entity_reference_field": {
        "data": {},
      }
    }
  }
}

レスポンス

HTTP 200レスポンス。更新された本文、サマリー、および削除されたエンティティ参照を含むレスポンスボディ。

Drupalドキュメントからの記事です。