Awesome Open Source
Awesome Open Source

⚠️ This package not up to date and maintained ⚠️

We recommend you not to use this package. We stopped to maintained it by lack of time and also because the features provided by this SDK are the same as a good HTTP client well configured. So I suggest you use the best HTTP client for the technology you use. To configure it to target your Strapi API. Here so usefull ressources to help you:


The official Strapi SDK for JavaScript, available for browsers or Node.js backends.



Install

npm install strapi-sdk-javascript

Start now

New instance

import Strapi from 'strapi-sdk-javascript';

const strapi = new Strapi('http://localhost:1337');

Authentications

Local

await strapi.login('username_or_email', 's3cr3t');

Providers

// Redirect your user to the provider's authentication page.
window.location = strapi.getProviderAuthenticationUrl('facebook');

Once authorized, the provider will redirects the user to your app with an access token in the URL.

// Complete the authentication: (The SDK will store the access token for you)
await strapi.authenticateProvider('facebook');

You can now fetch private APIs

const posts = await strapi.getEntries('posts');

Files management

Browser

const form = new FormData();
form.append('files', fileInputElement.files[0], 'file-name.ext');
form.append('files', fileInputElement.files[1], 'file-2-name.ext');
const files = await strapi.upload(form);

Node.js

const FormData = require('form-data');
const fs = require('fs');
const form = new FormData();
form.append('files', fs.createReadStream('./file-name.ext'), 'file-name.ext');
const files = await strapi.upload(form, {
  headers: form.getHeaders()
});

API

Strapi(baseURL, storeConfig, requestConfig)

request(method, url, requestConfig)

register(username, email, password)

login(identifier, password)

forgotPassword(email, url)

resetPassword(code, password, passwordConfirmation)

getProviderAuthenticationUrl(provider)

authenticateProvider(provider, params)

setToken(token, comesFromStorage)

clearToken(token)

getEntries(contentTypePluralized, params)

getEntry(contentTypePluralized, id)

getEntryCount(contentTypePluralized, params)

createEntry(contentTypePluralized, data)

updateEntry(contentTypePluralized, id, data)

deleteEntry(contentTypePluralized, id)

searchFiles(query)

getFiles(params)

getFile(id)

upload(data)

requestConfig

Custom axios request configuration. See documentation

Resources

Roadmap

  • GraphQL
  • Attach/Detach entry relationship
  • Real time with Socket.io

Credits

License

MIT


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Javascript (1,511,655
Typescript (251,857
Nodejs (53,830
Api (21,971
Graphql (8,197
Rest Api (8,086
Es6 (5,301
Sdk (4,164
Dashboard (3,190
Cms (2,837
Koa (1,212
Koa2 (901
Headless Cms (324
Strapi (255
Related Projects