plattar-api allows interfacing with the Plattar API.
- ES2015 & ES2019 Builds via jsDelivr
// Minified Version ES2015 & ES2019 (Latest)
https://cdn.jsdelivr.net/npm/@plattar/plattar-api/build/es2015/plattar-api.min.js
https://cdn.jsdelivr.net/npm/@plattar/plattar-api/build/es2019/plattar-api.min.js
// Standard Version ES2015 & ES2019 (Latest)
https://cdn.jsdelivr.net/npm/@plattar/plattar-api/build/es2015/plattar-api.js
https://cdn.jsdelivr.net/npm/@plattar/plattar-api/build/es2019/plattar-api.js
- Install using npm
npm install @plattar/plattar-api
- Generate ES6 minified JS
cd plattar-api
npm install
npm run build
- Fetch a project from the Plattar API.
const {
Project
} = require('@plattar/plattar-api');
const project = new Project('your-project-id');
project.get().then((proj) => {
// do something with a project
}).catch((error) => {
console.error(error);
});
- Plattar API supports relationship chaining using a single request. Fetch a project from the Plattar API that includes scenes and pages. The Relationships component has a number of useful queries that can be performed.
const {
Project,
Scene,
Page
} = require('@plattar/plattar-api');
const project = new Project('your-project-id');
// Tell the Plattar API to fetch your Scenes and Pages
// as part of the Project request
project.include(Scene, Page);
project.get().then((proj) => {
// get a list of all scenes that belong to your project
const scenes = proj.relationships.filter(Scene);
// get a list of all pages that belong to your project
const pages = proj.relationships.filter(Page);
// get a specific scene that belongs to your project
const myScene = proj.relationships.find(Scene, 'your-scene-id');
// get a specific page that belongs to your project
const myPage = proj.relationships.find(Page, 'your-page-id');
}).catch((error) => {
console.error(error);
});
- Plattar API also supports multiple relationship chaining using a single request. In this example we fetch a Project with Scenes and Pages aswell as SceneImage that belongs to a Scene.
const {
Project,
Scene,
Page,
SceneImage
} = require('@plattar/plattar-api');
const project = new Project('your-project-id');
// Tell the Plattar API to fetch your Scenes, Pages and
// to include SceneImage as part of Scenes
project.include(Page, Scene.include(SceneImage));
project.get().then((proj) => {
// get a list of all scenes that belong to your project
const scenes = proj.relationships.filter(Scene);
scenes.forEach((scene) => {
// grab the SceneImage that belongs to a Scene
const sceneImages = scene.relationships.filter(SceneImage);
});
}).catch((error) => {
console.error(error);
});
- Sometimes, we don't want to include everything as part of a single request. We can chain requests based on logic.
const {
Project,
Scene,
SceneImage
} = require('@plattar/plattar-api');
const project = new Project('your-project-id');
// Tell the Plattar API to fetch your scenes.
project.include(Scene);
project.get().then((proj) => {
// get a list of all scenes that belong to your project
const scenes = proj.relationships.filter(Scene);
scenes.forEach((scene) => {
// grab the SceneImage that belongs to a Scene
const sceneImage = scene.relationships.find(SceneImage);
// at this point, since SceneImage data was not fetched, we
// can grab it directly
sceneImage.get().then((sceneImage) => {
// do something with sceneImage
}).catch((error) => {
console.error(error);
});
});
}).catch((error) => {
console.error(error);
});