Api Doc - SDK - 01 - Introduction


Api Doc - The SDK

Esta é a uma série de postagens que sequencial sobre a Api Doc - JS SDK.
O projeto “Api Doc - JS SDK“, é atualmente um submódulo do projeto principal, O Api Doc, trata-se de uma abstração das regras crud do sistema principal, contendo o ORM “knex” como pacote principal, onde todos os métodos encapsulam as regras do sistema “Api Doc

Motivation

A documentação de API’s é parte fundamental do processo de construção e utilização de API’s, tornando não só a utilização da mesma menos “doloroza” mas também facilitando a sua manutenção, e essa foi a motivação central da construção desse projeto, construir uma tecnologia que facilita-se a documentação e ao mesmo tempo atendende-se os pontos básicos, como testes, etc.

Use Case

Quando comecei o projeto, pensei em não me limitar ao Framework usado no frontend, o “Vuejs” e muito menos na API Rest, o “ExpressJS”, nesse sentido, decidi abstrair as regras numa SDK, que não só eu como qualquer interessado pudesse recriar o sistema em outras plataformas com um certo grau de flexibilidade

Examples

Importando o pacote e configurando o “Knex”, muito parecido com a forma original de configuração “Knex”.

Além de configurar o “Knex”, para acesso ao banco de dados, é necessário também definir uma chave de API, todos os tokens serão gerados com base nesta chave.

import ApiDoc from "api-doc-js-doc";

const config = {
  dev: {
    client: "pg",
    connection: {
      port: process.env.PORTDB,
      host: process.env.HOSTDB,
      user: process.env.POSTGRES_USER,
      password: process.env.POSTGRES_PASSWORD,
      database: process.env.POSTGRES_DB,
    },
    pool: { min: 0, max: 10, idleTimeoutMillis: 500 },
  },
};

export default new ApiDoc(config.dev, "TheApiSecretKey");

Importing the Instance

Após definir a configuração básica do pacote, é necessário importar a instancia e chamar os métodos

Register

import apiDoc from "../config/api";

const name = "name";
const email = "email@teste.com";
const password = "passwordTest";

// Async Await / Try Catch
async function newUserAsyncAwait() {
  try {
    const user = await apiDoc.userRegister(name, email, password);
    console.log(user); // return new user
  } catch (error) {
    console.log(error.message); // return an eventual error
  }
}

// or

// Then Catch
apiDoc
  .userRegister(name, email, password)
  .then((newUser) => {
    console.log(newUser); // return new user
  })
  .catch((err) => {
    console.log(err); // return an eventual error
  });

Authentication

Para realizar uma autenticação, basta usar o método “userAuth”, passando email e senha como parâmetros, que a sdk vai retornar o objeto “usuário” e um token de JWT para válido.

import apiDoc from "../config/api";

const email = "email@teste.com";
const password = "passwordTest";

// Async Await / Try Catch
async function login() {
  try {
    const user = await apiDoc.userAuth(name, email, password);
    console.log(user);
  } catch (error) {
    console.log(error.message);
  }
}

// or

// Then Catch
apiDoc
  .userAuth(email, password)
  .then((userAndToken) => {
    console.log(userAndToken); // return user/token jwt
  })
  .catch((err) => {
    console.log(err); // return an eventual error
  });

Author: João Medeiros
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source João Medeiros !
  Topics