Pular para o conteúdo principal

Comece

O OneEntry Headless CMS SDK é um SDK que fornece uma maneira fácil de interagir com a API do OneEntry Headless CMS.

Site Oficial

Visite o site oficial do AsyncModules em https://oneentry.cloud para saber mais sobre o AsyncModules Headless CMS.

Inscreva-se

Para começar a usar o AsyncModules, inscreva-se para uma conta em https://account.oneentry.cloud/authentication/register.

Instalação

Para instalar o AsyncModules Headless CMS SDK em seu projeto, execute o seguinte comando:

npm install oneentry

Para usar o AsyncModules Headless CMS SDK em seu projeto, importe a função defineOneEntry:

import { defineOneEntry } from 'oneentry'

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

Ou

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

Configuração

O segundo parâmetro do construtor recebe a 'config'. Ele contém os seguintes valores:

  • 'token' - Defina a chave do token se seu projeto exigir "Security API Token". Se você estiver usando proteção por certificado, não passe esta variável. Você pode ler mais sobre a segurança do seu projeto aqui.

  • 'langCode' - Defina o "langCode" para definir o idioma padrão. Ao especificar este parâmetro uma vez, você não precisa passar o langCode para os métodos da API ONEENTRY. Se você não tiver passado o idioma padrão, ele será definido como "en_US".

  • 'traficLimit' - Alguns métodos usam mais de uma solicitação para o CMS para que os dados que você recebe sejam completos e fáceis de trabalhar. Passe o valor "true" para este parâmetro para economizar tráfego e decidir por si mesmo quais dados você precisa. O valor padrão é "false".

  • 'auth' - Um objeto com configurações de autorização. Por padrão, o SDK é configurado para trabalhar com tokens dentro da sessão do usuário e não requer nenhum trabalho adicional de sua parte. Ao mesmo tempo, o SDK não armazena o estado da sessão entre sessões. Se você estiver satisfeito com essas configurações, não passe a variável 'auth' de forma alguma.

O 'auth' contém as seguintes configurações:

  • 'refreshToken' - O token de atualização do usuário. Transfira-o aqui do repositório para restaurar a sessão do usuário durante a inicialização.

  • 'saveFunction' - Uma função que trabalha com a atualização do token de refresh. Se você quiser armazenar o token entre sessões, por exemplo, no armazenamento local, passe uma função aqui que faça isso. A função deve aceitar um parâmetro ao qual a string com o token será passada.

  • 'customAuth' - Se você quiser configurar a autorização e trabalhar com tokens por conta própria, defina este sinalizador como verdadeiro. Se você quiser usar as configurações do sdk, defina como falso ou não a transfira de forma alguma.

Um exemplo de configuração com proteção de token e autenticação automática que armazena o estado entre sessões

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

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

Um exemplo de configuração que é protegida com um certificado permite que você configure o sistema de autorização por conta própria e salve dados em solicitações.

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

Se você optou por configurar os tokens por conta própria, pode passar o token para o método da seguinte forma. O método intermediário permite que você passe um token de acesso para a solicitação. Em seguida, chame o método necessário. Este método (setAccessToken) não deve ser chamado se o método não exigir autorização do usuário.

const user = api.Users.setAccessToken('meu.token.de.acesso').getUser()

Se você escolheu a proteção por token para garantir a segurança da conexão, basta passar seu token para a função como um parâmetro opcional.

Você pode obter um token da seguinte forma:

  1. Faça login na sua conta pessoal
  2. Vá para a aba "Projetos" e selecione um projeto
  3. Vá para a aba "Acesso"
  4. Ative o interruptor para "Security API Token"
  5. Faça login no projeto, vá para a seção de configurações e abra a aba de token
  6. Obtenha e copie o token do seu projeto

Você também pode conectar um certificado TLS para proteger seu projeto. Nesse caso, não passe o "token" de forma alguma. Ao usar o certificado, configure um proxy em seu projeto. Passe uma string vazia como parâmetro de url. Saiba mais sobre segurança

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

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

Erros

Se você quiser escapar de erros dentro do sc, mantenha a propriedade "errors" como padrão. Nesse caso, você receberá ou os dados da entidade ou o objeto de erro. Você precisa fazer uma verificação de tipo, por exemplo, verificando a propriedade statusCode com ".hasOwnProperty".

No entanto, se você quiser usar a construção "try catch(e) ", defina a propriedade "isShell" como "false". Nesse caso, você precisará tratar o erro usando "try catch(e) ".

Além disso, você pode passar funções personalizadas que serão chamadas dentro do sdk com o código de erro apropriado. Essas funções recebem um objeto de erro como argumento. Você pode processá-lo por conta própria.

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