All Projects → ButterCMS → Buttercms Js

ButterCMS / Buttercms Js

Licence: other
Node/JS API client for ButterCMS (https://buttercms.com)

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Buttercms Js

Electrode Csrf Jwt
Stateless Cross-Site Request Forgery (CSRF) protection with JWT
Stars: ✭ 127 (-1.55%)
Mutual labels:  koa, hapi
Cls Rtracer
Request Tracer - CLS-based request id generation for Express, Fastify, Koa and Hapi, batteries included
Stars: ✭ 175 (+35.66%)
Mutual labels:  koa, hapi
Node Rate Limiter Flexible
Node.js rate limit requests by key with atomic increments in single process or distributed environment.
Stars: ✭ 1,950 (+1411.63%)
Mutual labels:  koa, hapi
Openapi Backend
Build, Validate, Route, Authenticate and Mock using OpenAPI
Stars: ✭ 216 (+67.44%)
Mutual labels:  koa, hapi
Lin Cms Koa
🌀使用Node.JS KOA构建的CMS开发框架
Stars: ✭ 649 (+403.1%)
Mutual labels:  cms, koa
Node Frameworks Benchmark
Simple HTTP benchmark for different nodejs frameworks using wrk
Stars: ✭ 117 (-9.3%)
Mutual labels:  koa, hapi
Apollo Server
🌍  Spec-compliant and production ready JavaScript GraphQL server that lets you develop in a schema-first way. Built for Express, Connect, Hapi, Koa, and more.
Stars: ✭ 12,145 (+9314.73%)
Mutual labels:  koa, hapi
Strapi Sdk Javascript
🔌 Official JavaScript SDK for APIs built with Strapi.
Stars: ✭ 247 (+91.47%)
Mutual labels:  cms, koa
Grant
OAuth Proxy
Stars: ✭ 3,509 (+2620.16%)
Mutual labels:  koa, hapi
Strapi
🚀 Open source Node.js Headless CMS to easily build customisable APIs
Stars: ✭ 41,786 (+32292.25%)
Mutual labels:  cms, koa
Permit
An unopinionated authentication library for building Node.js APIs.
Stars: ✭ 1,654 (+1182.17%)
Mutual labels:  koa, hapi
Cms
MaxSite CMS
Stars: ✭ 123 (-4.65%)
Mutual labels:  cms
Koa Vue Fullstack
A lightweight boilerplate for a universal webapp based on koa, mongodb, node, vue, and webpack
Stars: ✭ 126 (-2.33%)
Mutual labels:  koa
Cash
HTTP response caching for Koa. Supports Redis, in-memory store, and more!
Stars: ✭ 122 (-5.43%)
Mutual labels:  koa
Hoosk
Hoosk Codeigniter CMS
Stars: ✭ 123 (-4.65%)
Mutual labels:  cms
Cms
SkeekS CMS (Yii2)
Stars: ✭ 128 (-0.78%)
Mutual labels:  cms
Craft
Composer starter project for Craft CMS
Stars: ✭ 122 (-5.43%)
Mutual labels:  cms
Awilix Koa
Awilix helpers/middleware for Koa 2
Stars: ✭ 121 (-6.2%)
Mutual labels:  koa
Userauth
koa user auth middleware
Stars: ✭ 128 (-0.78%)
Mutual labels:  koa
Prime
✨Open Source GraphQL CMS
Stars: ✭ 1,675 (+1198.45%)
Mutual labels:  cms

ButterCMS JS client

npm version

Documentation

For a comprehensive list of examples, check out the API documentation.

Installation

Requires node.js version 4 or greater.

npm install buttercms --save

Butter can also be included directly in HTML:

<script src="https://cdnjs.buttercms.com/buttercms-1.1.4.min.js"></script>

Overview

Every resource is accessed via your butter instance:

var butter = require('buttercms')('api_token_567abe');

Using ES6:

import Butter from 'buttercms';
const butter = Butter('api_token_567abe');

Using TypeScript:

import Butter = require('buttercms');
const butter = Butter('api_token_567abe');

Using CDN:

<script>
  var butter = Butter('api_token_567abe');
</script>

Every resource method returns a promise:

// Get blog posts
butter.post.list({page: 1, page_size: 10}).then(function(response) {
  console.log(response)
})

Pages

Where you see params it is a plain js object, e.g. {page: 1}. For a list of params see the API documentation

  • page
    • retrieve(page_type, page_slug[, params])
    • list(page_type[, params])
// Get page
butter.page.retrieve('casestudy', 'acme-co').then(function(resp) {
 console.log(resp)
});

Collections

  • content
    • retrieve(collection[, params])
// Get FAQ
butter.content.retrieve(["faq"], {locale: 'es'}).then(function(resp) {
  console.log(resp)
});

Preview mode

Preview mode can be used to setup a staging website for previewing content fields or for testing content during local development. To fetch content from preview mode add an additional argument, true, to the package initialization:

var butter = require('buttercms')('your butter API token', true);

Or use an environment variable:

var butter = require('buttercms')('your butter API token', process.env.BUTTER_PREVIEW_MODE);

Blog Engine

  • post
    • retrieve(slug[, params])
    • list([params])
    • search(query[, params])
  • category
    • retrieve(slug[, params])
    • list([params])
  • tag
    • retrieve(slug[, params])
    • list([params])
  • author
    • retrieve(slug[, params])
    • list([params])
  • feed
    • retrieve(type[, params])

See our node app for a full example.

Timeouts

The default timeout threshold is 3000ms but you can change it:

var butter = require('buttercms')('your butter API token', false, 5000);

Axios hook

If you need to custom headers, caching, automatic retry or any other specific functionality on the transport layer, you can hook up into the Axios instance creation process. Supply the axiosHook callback parameter and Butter will call you when Axios is being created:

function axiosHook(axios) {
  axios.interceptors.request.use(function requestLogger(config) {
    console.warn("Axios requested", config.url, config.params)

    return config;
  })
}

var butter = require('buttercms')('your butter API token', false, 5000, axiosHook);

Documentation

Documentation is available at https://buttercms.com/docs/api/node

Other

View NodeJS Blog engine and Full CMS for other examples of using ButterCMS with NodeJS.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].