Reference
Server API Reference for next-drupal
The following functions are meant to be called on the server (`getStaticPaths`, `getStaticProps` and `getServerSideProps`).
getPathsFromContext
Returns a list of paths for dynamic routes in `getStaticPaths` or `getServerSideProps`.
`getPathsFromContext` accepts a resource type or an array of resource types.
If you have locales configured in your `next.config.js` file, it will automatically create localized routes.
function getPathsFromContext(  types: string | string[],  context: GetStaticPathsContext,  options?: {    params?: JsonApiParams  }): Promise<any[]>Examples
Get paths for all article nodes.
pages/[[...slug]].tsx
import { getPathsFromContext } from "next-drupal"
export async function getStaticPaths(context) {  return {    paths: await getPathsFromContext("node--article", context),    fallback: true,  }}Get paths for all published article and page nodes.
pages/[[...slug]].tsx
import { getPathsFromContext } from "next-drupal"
export async function getStaticPaths(context) {  return {    paths: await getPathsFromContext(["node--article", "node--page"], context, {      params: {        "filter[status]": "1",      },    }),    fallback: true,  }}getResourceTypeFromContext
Returns a resource type in `getStaticProps` or `getServerSideProps`.
function getResourceTypeFromContext(  context: GetStaticPropsContext,  options?: {    prefix?: string  }): Promise<string>Examples
pages/[[...slug]].tsx
import { getResourceTypeFromContext } from "next-drupal"
export async function getStaticProps(context) {  const type = await getResourceTypeFromContext(context)
  if (type === "node--article") {    // Do something.  }}getResource
Loads a resource by ID (uuid) in `getStaticProps` or `getServerSideProps`.
function getResource(  type: string,  uuid: string,  options?: {    deserialize?: boolean  } & JsonApiWithLocaleOptions): Promise<any>Examples
Get a page by uuid.
const node = await getResource(  "node--page",  "07464e9f-9221-4a4f-b7f2-01389408e6c8")Get the `es` translation for a page by uuid.
const node = await getResource(  "node--page",  "07464e9f-9221-4a4f-b7f2-01389408e6c8",  {    locale: "es",    defaultLocale: "en",  })getResourceFromContext
Returns a single resource in `getStaticProps` or `getServerSideProps`.
function getResourceFromContext(  type: string,  context: GetStaticPropsContext,  options?: {    prefix?: string    deserialize?: boolean    params?: JsonApiParams  }): Promise<any>Examples
Get a page node.
pages/[[...slug]].tsx
import { getResourceFromContext } from "next-drupal"
export async function getStaticProps(context) {  const node = await getResourceFromContext("node--page", context)
  return {    props: {      node,    },    revalidate: 60,  }}getResourceByPath
Get a resource by path in `getStaticProps` or `getServerSideProps`.
function getResourceByPath(  type: string,  path: string,  options?: {    deserialize?: boolean  } & JsonApiWithLocaleOptions): Promise<any>Examples
Get an article by path.
const node = await getResourceByPath("node--article", "/blog/hello-world")Get the `es` translation for a article by path.
const node = await getResourceByPath("node--article", "/blog/hello-world", {  locale: "es",  defaultLocale: "en",})getResourceCollection
Returns a collection of resources in `getStaticProps` or `getServerSideProps`.
function getResourceCollection(  type: string,  options?: {    deserialize?: boolean  } & JsonApiWithLocaleOptions): Promise<any>Examples
Get a collection of articles.
const articles = await getResourceCollection("node--article")Get a collection of published articles.
const articles = await getResourceCollection("node--article", {  params: {    "filter[status]": "1",  },})getResourceCollectionFromContext
Returns a collection of resources from context in `getStaticProps` or `getServerSideProps`.
function getResourceCollectionFromContext(  type: string,  context: GetStaticPropsContext,  options?: {    deserialize?: boolean    params?: JsonApiParams  }): Promise<any>Examples
Get a collection of articles
export async function getStaticProps(context) {  const articles = await getResourceCollectionFromContext(    "node--article",    context  )}getMenu
You need to install the JSON:API Menu Items module to use `useMenu` and `getMenu`.
Returns menu items for a menu by name in `getStaticProps` or `getServerSideProps`.
function getMenu(  name: string,  options?: {    deserialize?: boolean  } & JsonApiWithLocaleOptions): Promise<{  items: DrupalMenuLinkContent[]  tree: DrupalMenuLinkContent[]}>`items`is an array of menu items sorted by weight.`tree`is the hierarchical menu tree with parent and children.
Examples
const { tree, items } = await getMenu("main")