UNPKG

@preprio/nodejs-sdk

Version:

The official Prepr SDK for Node.js

111 lines (80 loc) 3.71 kB
# Node.js Prepr Content Delivery SDK - [Source code](https://github.com/preprio/nodejs-sdk) on GitHub. ## About Prepr Hi there, nice to meet you. We are Prepr, and we are the world’s first data-driven headless content management system. With just one solution, we offer you all the tools you need to publish impactful content. ## Getting started ### Installation Get started by installing the SDK in your application, simply open a terminal and enter ```bash npm i @preprio/nodejs-sdk ``` ### Creating a client We don't want to repeat our configuration for every api call, that's why we suggest you create a client from which you make requests. Let's make a client by creating `services/prepr.js` with the following code ```js // services/prepr.js const { createPreprClient } = require('@preprio/nodejs-sdk') const prepr = createPreprClient({ token: '<your access token>', // required timeout: 4000, // default value baseUrl: 'https://cdn.prepr.io', // default value (REST API), for GraphQL API use https://graphql.prepr.io/graphql userId: null, // optional, used for AB testing }) module.exports = { prepr } ``` Great, now we have the configuration in one place. Now, we can import our configured prepr client to perform requests. ## Usage GraphQL API To perform API requests you can make use of our fluent builder, this is how it looks like ```js // We created this earlier const { prepr } = require('./services/prepr') const result = await prepr .graphqlQuery(`GraphQL Query`) // https://prepr.dev/docs/graphql/v1/collection-introduction .graphqlVariables({JSON_VARIABLE_PAYLOAD}) .timeout(8000) // Override globally set timeout for request cancellation .userId('...') // Override globally set userId for ab testing .token('xx-xx') // Update the Token used by the SDK for example when previewing staged content .fetch() // Fetch the collections ``` Let's request all Pages in our Prepr environment. ```js // We created this earlier const {prepr} = require('./services/prepr') const result = await prepr .graphqlQuery(`{ Pages { items { _id title summary } } }`) .fetch() ``` To help you querying our API we've added multiple examples to our [GraphQL Reference](https://prepr.dev/docs/graphql/v1/introduction). ## Usage REST API To perform API requests you can make use of our fluent builder, this is how it looks like ```js // We created this earlier const { prepr } = require('./services/prepr') const result = await prepr .path('/publications') // request path `https://cdn.prepr.io/publications` .query({ 'model' : { 'eq' : 'x-x-x-x-x' } }) // query data https://prepr.dev/docs/rest/v1/introduction .timeout(8000) // Override globally set timeout for request cancellation .userId('...') // Override globally set userId for ab testing .token('xx-xx') // Update the Token used by the SDK for example when previewing staged content .sort('created_at') // Sort data .limit(8) // Limit the amount collections being returned .skip(0) // Skip the first x amount collections before returning resources .fetch() // Fetch the collections ``` To help you querying our API we've added multiple examples to our [REST Reference](https://prepr.dev/docs/rest/v1/introduction). ## Reach out to us You have questions about how to use this library or the Prepr API? Contact our support team at support@prepr.io or join us on [Slack](https://slack.prepr.io). **You found a bug or want to propose a feature?**. File an issue here on GitHub. Don't share any authentication info in any code before sharing it.