Nuxt Typescript module for Roadiz API client.
yarn add @roadiz/nuxt-module
Add module in you nuxt.config.js file and fill you API configuration values in publicRuntimeConfig:
// nuxt.config.js modules: [ '@roadiz/nuxt-module' ], publicRuntimeConfig: { roadiz: { baseURL: 'https://myroadizapi.test/api/1.0', apiKey: 'xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx', allowClientPreview: true, debug: false, origin: 'https://mywebsite.test' } }
Make sure to add a default origin for any server side requests if you Roadiz API is secured by RefererRegex.
Add typescript declarations in your tsconfig.json:
{
"compilerOptions": {
"types": [
"@roadiz/nuxt-module"
]
}
}Here is a simple example how to fetch Roadiz API content during asyncData:
async asyncData({ $roadiz, route, req }: Context): Promise<object | void> | object | void { const path = route.params.pathMatch const response = await $roadiz.getWebResponseByPath(path) const pageData = response.data const altLinks = await $roadiz.getAlternateLinks(response) return { pageData, altLinks } }
If you enable allowClientPreview config, NuxtRoadizApi will append _preview and token query parameters to any
API request to your Roadiz API. _preview parameter will be passed-through, and token parameter will be added as
Authorization: Bearer ${token} header.
If your user is currently previewing with a JWT, $roadiz.previewingJwt (RoadizPreviewJwt) object will be available
to display information on your website.