1.5.31 • Published 2 months ago

synapseapi v1.5.31

Weekly downloads
-
License
-
Repository
-
Last release
2 months ago

SinapseApi

Desenvolver APIs robustas e eficientes em Node.js agora ficou mais simples com a nossa nova framework. Projetada para agilizar e simplificar o processo de construção, nossa framework oferece uma estrutura flexível e intuitiva, permitindo que os desenvolvedores concentrem-se na lógica de negócios em vez de se preocuparem com detalhes técnicos.

Com uma arquitetura modular e extensível, nossa framework proporciona um ambiente altamente adaptável para atender às necessidades específicas de qualquer projeto. Desde a autenticação e autorização até a manipulação de solicitações HTTP e a integração de bancos de dados, cada aspecto do desenvolvimento de API é simplificado e otimizado.

Além disso, nossa framework oferece uma documentação abrangente e exemplos práticos para orientar os desenvolvedores em cada etapa do processo de desenvolvimento. Isso reduz drasticamente o tempo de ramp-up e permite que equipes de desenvolvimento coloquem rapidamente suas ideias em prática.

Em resumo, nossa framework em Node.js não apenas simplifica a construção de APIs, mas também promove a produtividade e a qualidade do código, permitindo que você desenvolva APIs de alto desempenho com facilidade e eficiência.

Instalação

Comandos para Instalação;

  npm install sinapseapi-cli -g;

Inicializar Projeto

Para iniciar um novo projeto, crie primeiro uma pasta vazia. Em seguida, abra um terminal ou prompt de comando dentro dessa pasta e execute o seguinte comando:

  syapi tsinit

Arquivos e Pastas do Projeto

App Screenshot

  • startpm2.json;
    • O arquivo de configuração do PM2 é essencial para a implantação da API em ambiente de produção. Ele define as configurações necessárias para garantir que a aplicação seja executada de forma estável e eficiente, gerenciando processos, monitorando o desempenho e garantindo a disponibilidade contínua do serviço. Este arquivo é fundamental para a configuração adequada do PM2 e a correta execução da API em um ambiente de produção;
{
  "apps": [
    {
      "name": "<pm2 app name>",
      "script": "index.js",
      "cron_restart": "0 0 * * *",
      "exec_mode": "fork",
      "instances": 1,
      "namespace": "<pm2 app namespace>"
    }
  ]
}
  • index.ts;
    • O arquivo de entrada da API é onde a inicialização da mesma ocorre. É aqui que os processos essenciais para o funcionamento da API são iniciados, estabelecendo as bases para sua operação. Este arquivo desempenha um papel fundamental, sendo o ponto de partida para a execução da API;
import { AppApi } from 'synapseapi';
const appApi = new AppApi();
appApi.start();
  • app.json/app.prod.json;
    • O arquivo de configuração da API é onde estão centralizados todos os dados de conexão e configuração dos serviços integrados à framework. Essencialmente, este arquivo serve como um repositório de informações cruciais para a operação adequada da API, garantindo que as conexões e configurações estejam corretamente estabelecidas para o funcionamento eficiente da aplicação. Quando na frente do nome do aplicativo houver um .prod, significa que o arquivo é de produção, nele contém as mesmas definições do app.json, só que no ambiente de produção. Importante: não subir este arquivo para o repositório git, pois ele contem informações de autenticações gerais e de banco de dados;

Configurações

Pastas

  • sql;
    • A pasta SQL é responsável por armazenar os arquivos SQL que serão executados diretamente pela engine. Para evitar dependências específicas de um único banco de dados, é recomendado evitar o uso de sintaxe exclusiva. Dentro desta pasta, é possível organizar os SQLs em subpastas para uma melhor estruturação. Todos os arquivos devem ter a extensão .sql e podem ser carregados utilizando o método abaixo:
  let sql = await Helper.sql().loadSQL("vendas/vendas-por-periodo");
  • shared;

    A pasta 'shared' contém arquivos de uso geral da API, incluindo aqueles que serão compartilhados por todo o processo. Abaixo, segue a explicação de cada arquivo predefinido nesta pasta;

  • shared/user_helper.ts;

    O arquivo user_helper.ts contém métodos específicos do projeto. Para utilizá-los, utilize o comando abaixo.

// Exemplo da Chamada
await (await Helper.userHelper<UserHelper>(req)).metodoDaApi()

// Codigo do arquivo user_helper.ts
import { ApiRequest } from "synapseapi";

export class UserHelper {
  private req?: ApiRequest;
  constructor(req?: ApiRequest) {
    this.req = req;
  }

  metodoDaApi(): Promise<void>{
    return new Promise(async(resolve, reject)=>{})
  }
}
  • shared/user_session.ts;

    Neste arquivo, encontra-se a classe de sessão. Quando a configuração de sessão está ativada, cada endpoint passa por este método UserSession.session. O retorno deste método será enviado para o campo session no retorno do endpoint. O campo id, presente na classe TokenData, é retornado pela framework e contém o Id do usuário capturado do token de acesso. Este parâmetro deve ser fornecido no método de login, que será detalhado mais adiante na documentação.

import { ApiRequest } from "synapseapi";

export class UserSession {
  session(req: ApiRequest<TokenData>): Promise<any> {
    return new Promise(async (resolve, reject)=>{
      try {
        resolve({})
      } catch(error){
        return reject(error)
      }
    })
  }
}

export interface TokenData {
  id: string
}
  • shared/user_settings.ts;

    Neste arquivo estão contidas as configurações específicas do projeto, ou seja, aquelas que vão além das configurações do arquivo app..json. Para configurar um parâmetro específico, deve-se acessar os arquivos app.json e app..json e adicionar suas configurações na seção usersettings. Abaixo, segue como acessar seus valores

// Classe UserSetting contida no arquivo user_settings.ts
export interface UserSettings {
  meuparametro: string;
}
// Pedaço do arquivo app.json ou app.prod.json
{
  ...
  "usersettings":{
    "meuparametro": "valor do parâmetro"
  }
}
// Como pegar o valor definido
let valor = ConfigApp.getConfig<UserSettings>().usersettings.meuparametro;
  • report;

    Na pasta report estão armazenados os arquivos de relatório da API. Esses relatórios devem ser criados utilizando o JasperReport. Dentro da pasta template encontra-se o projeto do Jasper, com cada relatório em suas respectivas subpastas. A pasta lib contém a biblioteca Java responsável por compilar o relatório em PDF. Esta biblioteca é baixada automaticamente pela framework se o parâmetro reportlib.init no arquivo de configuração for configurado como true

Pasta models

Pasta controllers

1.5.30

2 months ago

1.5.31

2 months ago

1.5.29

2 months ago

1.5.28

2 months ago

1.5.27

2 months ago

1.5.5

3 months ago

1.5.4

3 months ago

1.5.3

3 months ago

1.5.2

3 months ago

1.5.1

3 months ago

1.5.0

4 months ago

1.5.9

3 months ago

1.5.8

3 months ago

1.5.7

3 months ago

1.5.6

3 months ago

1.4.89

4 months ago

1.4.91

4 months ago

1.4.90

4 months ago

1.4.93

4 months ago

1.4.92

4 months ago

1.4.95

4 months ago

1.4.94

4 months ago

1.4.97

4 months ago

1.4.96

4 months ago

1.4.99

4 months ago

1.4.98

4 months ago

1.5.10

3 months ago

1.5.12

3 months ago

1.5.11

3 months ago

1.5.14

3 months ago

1.5.13

3 months ago

1.5.16

3 months ago

1.5.15

3 months ago

1.5.18

3 months ago

1.5.17

3 months ago

1.5.19

3 months ago

1.5.21

3 months ago

1.5.20

3 months ago

1.5.23

3 months ago

1.5.22

3 months ago

1.5.25

3 months ago

1.5.24

3 months ago

1.5.26

3 months ago

1.3.50

6 months ago

1.4.20

6 months ago

1.3.53

6 months ago

1.3.54

6 months ago

1.4.22

6 months ago

1.3.51

6 months ago

1.4.21

6 months ago

1.3.52

6 months ago

1.4.24

6 months ago

1.3.57

6 months ago

1.4.23

6 months ago

1.3.58

6 months ago

1.4.26

6 months ago

1.4.25

6 months ago

1.3.56

6 months ago

1.4.28

6 months ago

1.4.27

6 months ago

1.3.59

6 months ago

1.4.29

5 months ago

1.3.60

6 months ago

1.2.92

7 months ago

1.3.61

6 months ago

1.2.93

7 months ago

1.4.31

5 months ago

1.3.64

6 months ago

1.2.96

7 months ago

1.4.30

5 months ago

1.3.65

6 months ago

1.2.97

7 months ago

1.4.33

5 months ago

1.3.62

6 months ago

1.2.94

7 months ago

1.4.32

5 months ago

1.3.63

6 months ago

1.2.95

7 months ago

1.4.35

5 months ago

1.3.68

6 months ago

1.4.34

5 months ago

1.3.69

6 months ago

1.4.37

5 months ago

1.3.66

6 months ago

1.2.98

7 months ago

1.4.36

5 months ago

1.3.67

6 months ago

1.2.99

7 months ago

1.4.39

5 months ago

1.4.38

5 months ago

1.3.31

7 months ago

1.3.32

7 months ago

1.3.30

7 months ago

1.3.35

7 months ago

1.3.36

7 months ago

1.3.33

7 months ago

1.3.34

7 months ago

1.3.39

7 months ago

1.3.37

7 months ago

1.3.43

7 months ago

1.4.11

6 months ago

1.3.40

7 months ago

1.4.10

6 months ago

1.3.41

7 months ago

1.4.13

6 months ago

1.3.46

7 months ago

1.4.12

6 months ago

1.3.47

6 months ago

1.4.15

6 months ago

1.3.44

7 months ago

1.4.14

6 months ago

1.3.45

7 months ago

1.4.17

6 months ago

1.4.19

6 months ago

1.3.48

6 months ago

1.4.18

6 months ago

1.3.49

6 months ago

1.4.6

6 months ago

1.4.5

6 months ago

1.4.3

6 months ago

1.4.2

6 months ago

1.4.1

6 months ago

1.4.0

6 months ago

1.3.10

7 months ago

1.3.13

7 months ago

1.3.14

7 months ago

1.3.11

7 months ago

1.3.17

7 months ago

1.3.18

7 months ago

1.3.15

7 months ago

1.3.16

7 months ago

1.3.19

7 months ago

1.3.20

7 months ago

1.3.24

7 months ago

1.3.25

7 months ago

1.3.22

7 months ago

1.3.23

7 months ago

1.3.28

7 months ago

1.3.26

7 months ago

1.3.27

7 months ago

1.3.7

7 months ago

1.3.6

7 months ago

1.3.5

7 months ago

1.3.4

7 months ago

1.3.3

7 months ago

1.3.2

7 months ago

1.3.0

7 months ago

1.4.9

6 months ago

1.4.8

6 months ago

1.4.7

6 months ago

1.3.9

7 months ago

1.3.8

7 months ago

1.4.80

4 months ago

1.4.82

4 months ago

1.4.81

4 months ago

1.4.84

4 months ago

1.4.83

4 months ago

1.4.85

4 months ago

1.4.88

4 months ago

1.4.87

4 months ago

1.3.90

6 months ago

1.4.60

5 months ago

1.3.93

6 months ago

1.3.94

6 months ago

1.4.62

5 months ago

1.3.91

6 months ago

1.4.61

5 months ago

1.3.92

6 months ago

1.4.64

5 months ago

1.3.97

6 months ago

1.4.63

5 months ago

1.3.98

6 months ago

1.4.66

4 months ago

1.3.95

6 months ago

1.4.65

5 months ago

1.3.96

6 months ago

1.4.68

4 months ago

1.4.67

4 months ago

1.3.99

6 months ago

1.4.69

4 months ago

1.4.71

4 months ago

1.4.70

4 months ago

1.4.73

4 months ago

1.4.72

4 months ago

1.4.75

4 months ago

1.4.74

4 months ago

1.4.77

4 months ago

1.4.76

4 months ago

1.4.79

4 months ago

1.4.78

4 months ago

1.3.71

6 months ago

1.3.72

6 months ago

1.4.40

5 months ago

1.3.70

6 months ago

1.4.42

5 months ago

1.3.75

6 months ago

1.4.41

5 months ago

1.3.76

6 months ago

1.4.44

5 months ago

1.3.73

6 months ago

1.3.74

6 months ago

1.4.46

5 months ago

1.3.79

6 months ago

1.4.45

5 months ago

1.4.48

5 months ago

1.3.77

6 months ago

1.4.47

5 months ago

1.3.78

6 months ago

1.4.49

5 months ago

1.3.82

6 months ago

1.3.83

6 months ago

1.4.51

5 months ago

1.3.80

6 months ago

1.4.50

5 months ago

1.3.81

6 months ago

1.4.53

5 months ago

1.3.86

6 months ago

1.4.52

5 months ago

1.3.87

6 months ago

1.4.55

5 months ago

1.3.84

6 months ago

1.4.54

5 months ago

1.3.85

6 months ago

1.4.57

5 months ago

1.4.56

5 months ago

1.4.59

5 months ago

1.3.88

6 months ago

1.4.58

5 months ago

1.3.89

6 months ago

1.2.91

7 months ago

1.2.85

8 months ago

1.2.84

8 months ago

1.2.89

8 months ago

1.2.87

8 months ago

1.2.88

8 months ago

1.2.90

8 months ago

1.2.81

8 months ago

1.2.82

8 months ago

1.2.80

8 months ago

1.2.69

8 months ago

1.2.70

8 months ago

1.2.71

8 months ago

1.2.74

8 months ago

1.2.75

8 months ago

1.2.72

8 months ago

1.2.79

8 months ago

1.2.76

8 months ago

1.2.77

8 months ago

1.2.67

8 months ago

1.2.68

8 months ago

1.2.65

8 months ago

1.2.66

8 months ago

1.2.60

8 months ago

1.2.63

8 months ago

1.2.64

8 months ago

1.2.61

8 months ago

1.2.62

8 months ago

1.2.49

8 months ago

1.2.52

8 months ago

1.2.53

8 months ago

1.2.50

8 months ago

1.2.51

8 months ago

1.2.56

8 months ago

1.2.57

8 months ago

1.2.54

8 months ago

1.2.55

8 months ago

1.2.59

8 months ago

1.2.45

8 months ago

1.2.46

8 months ago

1.2.43

8 months ago

1.2.44

8 months ago

1.2.47

8 months ago

1.2.48

8 months ago

1.2.42

8 months ago

1.2.41

8 months ago

1.2.40

8 months ago

1.2.39

8 months ago

1.2.38

9 months ago

1.2.36

9 months ago

1.2.35

9 months ago

1.2.34

9 months ago

1.2.33

9 months ago

1.2.32

9 months ago

1.2.31

9 months ago

1.2.30

9 months ago

1.2.28

9 months ago

1.2.27

9 months ago

1.2.26

9 months ago