createResource
Create a resource.
const resource = await drupal.createResource<T = JsonApiResource>( type, body, options?: { params, withAuth, deserialize, }): Promise<T>type: string- Required
- The resource type. Example:
node--article,taxonomy_term--tags, orblock_content--basic.
body: JsonApiCreateResourceBody- Required
- The body payload with
data. - interface JsonApiCreateResourceBody {data: {type?: stringattributes?: Record<string, unknown>relationships?: Record<string, JsonApiResourceBodyRelationship>}}
options- Optional
params: JsonApiParams: JSON:API params such asfilter,fields,includeorsort.withAuth: boolean | NextDrupalAuth:- Set the authentication method to use. See the authentication docs.
- Set to
trueto use the authentication method configured on the client.
deserialize: boolean: Set to false to return the raw JSON:API response.
Examples
- Create a
node--pageresource.
const page = await drupal.createResource("node--page", { data: { attributes: { title: "Page Title", body: { value: "<p>Content of body field</p>", format: "full_html", }, }, },})- Get a
node--articleresource with a taxonomy term.
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_category: { data: { type: "taxonomy_term--category", id: "28ab9f26-927d-4e33-9510-b59a7ccdafe6", }, }, }, },})- Using filters.
const page = await drupal.createResource( "node--page", { data: { attributes: { title: "Page Title", body: { value: "<p>Content of body field</p>", format: "full_html", }, }, }, }, { params: { "fields[node--page]": "title,path", }, })TypeScript
- Using
DrupalNodefor a node entity type.
import { DrupalNode } from "next-drupal"
const page = await drupal.createResource<DrupalNode>("node--page", { data: { attributes: { title: "Page Title", body: { value: "<p>Content of body field</p>", format: "full_html", }, }, },})See the TypeScript docs for more built-in types.