创建资源 (POST)
如何使用 DrupalClient 创建 JSON:API 资源。
⚠️
在 next-drupal ^1.4.0
中提供了 createResource
和 createFileResource
辅助函数。
DrupalClient
提供了 createResource
和 createFileResource
方法来创建 JSON:API 资源。
createResource
创建资源
创建一个包含标题和正文的文章。
const article = await drupal.createResource("node--article", { data: { attributes: { title: "Title of Article", body: { value: "<p>Content of body field</p>", format: "full_html", }, }, },})
创建包含关联关系的资源
创建包含媒体字段的文章。
const article = await drupal.createResource("node--article", { data: { attributes: { title: "Title of Article", body: { value: "<p>Content of body field</p>", format: "full_html", }, }, relationships: { field_media_image: { data: { type: "media--image", id: media.id, }, }, }, },})
createFileResource
要创建文件资源,请使用父实体上文件字段的名称。
例如:一个名为 field_media_image
的文件字段的 media--image
。
const file = await drupal.createFileResource("file--file", { data: { attributes: { type: "media--image", // <-- The type of the parent resource. field: "field_media_image", // <-- The name of the field on the parent resource. filename: "filename.jpg", file: await fs.readFile("/path/to/file.jpg"), }, },})
这将创建一个 file--file
资源。
然后,您可以使用它创建一个新的 media--image
,并与 file--file
建立关联关系。
const media = await drupal.createResource<DrupalMedia>("media--image", { data: { attributes: { name: "Name for the media", }, relationships: { field_media_image: { data: { type: "file--file", id: file.id, }, }, }, },})
请参阅 createFileResource API 参考。
身份验证
要创建资源时进行身份验证请求,请使用 withAuth
选项。
请参阅 身份验证文档,了解受支持的身份验证方法。
const article = await drupal.createResource( "node--article", { data: { attributes: { title: "Title of Article", body: { value: "<p>Content of body field</p>", format: "full_html", }, }, } }, { withAuth: // <-- Your auth method here. })