Saltar al contenido principal

Comenzar

OneEntry Headless CMS SDK es un SDK que proporciona una forma fácil de interactuar con la API de OneEntry Headless CMS.

Sitio Oficial

Visita el sitio web oficial de AsyncModules en https://oneentry.cloud para aprender más sobre el AsyncModules Headless CMS.

Regístrate

Para comenzar con AsyncModules, regístrate para obtener una cuenta en https://account.oneentry.cloud/authentication/register.

Instalación

Para instalar el SDK de AsyncModules Headless CMS en tu proyecto, ejecuta el siguiente comando:

npm install oneentry

Para usar el SDK de AsyncModules Headless CMS en tu proyecto, importa la función defineOneEntry:

import { defineOneEntry } from 'oneentry'

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

O

const config = {
token:'tu-token-de-aplicación',
};
const api = defineOneEntry('tu-url', config);

Configuración

El segundo parámetro del constructor toma la 'config'. Contiene los siguientes valores:

  • 'token' - Establece la clave del token si tu proyecto asegura "Security API Token". Si estás utilizando protección por certificado, no pases esta variable. Puedes leer más sobre la seguridad de tu proyecto aquí.

  • 'langCode' - Establece el "langCode" para definir el idioma predeterminado. Al especificar este parámetro una vez, no tienes que pasar el langCode a los métodos de la API de ONEENTRY. Si no has pasado el idioma predeterminado, se establecerá en "en_US".

  • 'traficLimit' - Algunos métodos utilizan más de una solicitud al CMS para que los datos que recibas sean completos y fáciles de trabajar. Pasa el valor "true" para este parámetro para ahorrar tráfico y decidir por ti mismo qué datos necesitas. El valor predeterminado es "false".

  • 'auth' - Un objeto con configuraciones de autorización. Por defecto, el SDK está configurado para trabajar con tokens dentro de la sesión del usuario y no requiere ningún trabajo adicional de tu parte. Al mismo tiempo, el SDK no almacena el estado de la sesión entre sesiones. Si estás satisfecho con tales configuraciones, no pases la variable 'auth' en absoluto.

La 'auth' contiene las siguientes configuraciones:

  • 'refreshToken' - El token de actualización del usuario. Transfírelo aquí desde el repositorio para restaurar la sesión del usuario durante la inicialización.

  • 'saveFunction' - Una función que trabaja con la actualización del token de refresco. Si deseas almacenar el token entre sesiones, por ejemplo, en el almacenamiento local, pasa aquí una función que haga esto. La función debe aceptar un parámetro al que se le pasará la cadena con el token.

  • 'customAuth' - Si deseas configurar la autorización y trabajar con tokens tú mismo, establece este flag en true. Si deseas utilizar la configuración del sdk, configúralo en false o no lo transfieras en absoluto.

Un ejemplo de configuración con protección de token y autenticación automática que almacena el estado entre sesiones

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

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

Un ejemplo de configuración que está protegida con un certificado permite configurar el sistema de autorización tú mismo y guarda datos sobre las solicitudes.

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

Si has elegido configurar los tokens tú mismo, puedes pasar el token al método de la siguiente manera. El método intermedio permite pasar un token de acceso a la solicitud. Luego llama al método requerido. Este método (setAccessToken) no debe ser llamado si el método no requiere autorización del usuario.

const user = api.Users.setAccessToken('mi.token.de.acceso').getUser()

Si elegiste la protección por token para garantizar la seguridad de la conexión, simplemente pasa tu token a la función como un parámetro opcional.

Puedes obtener un token de la siguiente manera

  1. Inicia sesión en tu cuenta personal
  2. Ve a la pestaña "Proyectos" y selecciona un proyecto
  3. Ve a la pestaña "Acceso"
  4. Activa el interruptor en "Security API Token"
  5. Inicia sesión en el proyecto, ve a la sección de configuración y abre la pestaña de token
  6. Obtén y copia el token de tu proyecto

También puedes conectar un certificado tls para proteger tu proyecto. En este caso, no pases el "token" en absoluto. Al usar el certificado, configura un proxy en tu proyecto. Pasa una cadena vacía como parámetro de url. Aprende más sobre seguridad

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

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

Errores

Si deseas evitar errores dentro del sc, deja la propiedad "errors" por defecto. En este caso, recibirás ya sea los datos de la entidad o el objeto de error. Necesitas hacer una verificación de tipo, por ejemplo, comprobando la propiedad statusCode con ".hasOwnProperty".

Sin embargo, si deseas utilizar la construcción "try catch(e) ", establece la propiedad "isShell" en el valor "false". En este caso, necesitas manejar el error utilizando "try catch(e) ".

Además, puedes pasar funciones personalizadas que se llamarán dentro del sdk con el código de error correspondiente. Estas funciones reciben un objeto de error como argumento. Puedes procesarlo tú mismo.

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