⚠️ 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');
window.location = strapi.getProviderAuthenticationUrl('facebook');
Once authorized, the provider will redirects the user to your app with an access token in the URL.
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