Aller au contenu principal

Commencer

OneEntry Headless CMS SDK est un SDK qui fournit un moyen facile d'interagir avec l'API OneEntry Headless CMS.

Site Officiel

Visitez le site officiel d'AsyncModules à https://oneentry.cloud pour en savoir plus sur le CMS Headless d'AsyncModules.

Inscription

Pour commencer avec AsyncModules, inscrivez-vous pour un compte à https://account.oneentry.cloud/authentication/register.

Installation

Pour installer le SDK OneEntry Headless CMS dans votre projet, exécutez la commande suivante :

npm install oneentry

Pour utiliser le SDK OneEntry Headless CMS dans votre projet, importez la fonction defineOneEntry :

import { defineOneEntry } from 'oneentry'

const config = {
token:'your-app-token',
};
const {
Admins,
AttributesSets,
AuthProvider,
Blocks,
Events,
Forms,
FormData,
FileUploading,
GeneralTypes,
IntegrationCollections,
Locales,
Menus,
Orders,
Pages,
Products,
ProductStatuses,
System,
Templates,
TemplatePreviews,
Users,
WS
} = defineOneEntry('your-url', config);

Ou

const config = {
token:'your-app-token',
};
const api = defineOneEntry('your-url', config);

Configuration

Le deuxième paramètre du constructeur prend la 'config'. Il contient les valeurs suivantes :

  • 'token' - Définissez la clé de token si votre projet sécurise le "Security API Token". Si vous utilisez une protection par certificat, ne passez pas cette variable. Vous pouvez en savoir plus sur la sécurité de votre projet ici.

  • 'langCode' - Définissez le "langCode" pour définir la langue par défaut. En spécifiant ce paramètre une fois, vous n'avez pas besoin de passer le langCode aux méthodes de l'API ONEENTRY. Si vous n'avez pas passé la langue par défaut, elle sera définie sur "en_US".

  • 'traficLimit' - Certaines méthodes utilisent plus d'une requête au CMS afin que les données que vous recevez soient complètes et faciles à travailler. Passez la valeur "true" pour ce paramètre afin d'économiser du trafic et de décider vous-même quelles données vous avez besoin. La valeur par défaut est "false".

  • 'auth' - Un objet avec les paramètres d'autorisation. Par défaut, le SDK est configuré pour travailler avec des tokens à l'intérieur de la session de l'utilisateur et ne nécessite aucun travail supplémentaire de votre part. En même temps, le SDK ne stocke pas l'état de la session entre les sessions. Si vous êtes satisfait de ces paramètres, ne passez pas la variable 'auth' du tout.

L' 'auth' contient les paramètres suivants :

  • 'refreshToken' - Le token de rafraîchissement de l'utilisateur. Transférez-le ici depuis le dépôt pour restaurer la session de l'utilisateur lors de l'initialisation.

  • 'saveFunction' - Une fonction qui travaille avec le token de rafraîchissement mis à jour. Si vous souhaitez stocker le token entre les sessions, par exemple dans le stockage local, passez une fonction ici qui fait cela. La fonction doit accepter un paramètre auquel la chaîne contenant le token sera passée.

  • 'customAuth' - Si vous souhaitez configurer l'autorisation et travailler vous-même avec les tokens, définissez ce drapeau sur true. Si vous souhaitez utiliser les paramètres du SDK, définissez-le sur false ou ne le transférez pas du tout.

Un exemple de configuration avec protection par token et authentification automatique qui stocke l'état entre les sessions

const tokenFunction = (token) => {
localStorage.setItem('refreshToken', token)
}

const api = defineOneEntry('https://my-project.oneentry.cloud', {
token:'my-token',
langCode:'en_US',
auth: {
refreshToken: localStorage.getItem('refreshToken'),
saveFunction: tokenFunction
}
})

Un exemple de configuration protégée par un certificat vous permet de configurer le système d'autorisation vous-même et de sauvegarder les données sur les requêtes.

const api = defineOneEntry('https://my-project.oneentry.cloud', {
langCode:'en_US',
traficLimit: true,
auth: {
customAuth: true,
refreshToken: localStorage.getItem('refreshToken')
}
})

Si vous avez choisi de configurer les tokens vous-même, vous pouvez passer le token à la méthode comme suit. La méthode intermédiaire vous permet de passer un token d'accès à la requête. Ensuite, appelez la méthode requise. Cette méthode (setAccessToken) ne doit pas être appelée si la méthode ne nécessite pas d'autorisation utilisateur.

const user = api.Users.setAccessToken('my.access.token').getUser()

Si vous avez choisi la protection par token pour garantir la sécurité de la connexion, il vous suffit de passer votre token à la fonction en tant que paramètre optionnel.

Vous pouvez obtenir un token comme suit :

  1. Connectez-vous à votre compte personnel
  2. Allez à l'onglet "Projets" et sélectionnez un projet
  3. Allez à l'onglet "Accès"
  4. Activez le commutateur "Security API Token"
  5. Connectez-vous au projet, allez à la section des paramètres et ouvrez l'onglet des tokens
  6. Obtenez et copiez le token de votre projet

Vous pouvez également connecter un certificat TLS pour protéger votre projet. Dans ce cas, ne passez pas du tout le "token". Lors de l'utilisation du certificat, configurez un proxy dans votre projet. Passez une chaîne vide comme paramètre d'url. En savoir plus sur la sécurité

const saveTokenFromLocalStorage = (token) => {
localStorage.setItem('refreshToken', token)
}

const api = defineOneEntry('your-url', {
token: 'my-token',
langCode:'my-langCode',
auth: {
customAuth: false,
userToken: 'rerfesh.token',
saveFunction: saveTokenFromLocalStorage
}
});

Erreurs

Si vous souhaitez gérer les erreurs à l'intérieur du SDK, laissez la propriété "errors" par défaut. Dans ce cas, vous recevrez soit les données de l'entité, soit l'objet d'erreur. Vous devez effectuer une vérification de type, par exemple, en vérifiant la propriété statusCode avec ".hasOwnProperty".

Cependant, si vous souhaitez utiliser la construction "try catch(e) ", définissez la propriété "isShell" sur la valeur "false". Dans ce cas, vous devez gérer l'erreur en utilisant "try catch(e) ".

De plus, vous pouvez passer des fonctions personnalisées qui seront appelées à l'intérieur du SDK avec le code d'erreur approprié. Ces fonctions reçoivent un objet d'erreur en tant qu'argument. Vous pouvez le traiter vous-même.

const api = defineOneEntry('your-url', {
token: 'my-token',
langCode:'my-langCode',
errors: {
isShell: false,
customErrors: {
400: (error) => console.error(error.message),
404: (error) => console.error(error.message),
500: (error) => console.error(error.message)
}
}
});