1.5.31 • Published 5 days ago

synapseapi v1.5.31

Weekly downloads
-
License
-
Repository
-
Last release
5 days 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

5 days ago

1.5.31

5 days ago

1.5.29

5 days ago

1.5.28

5 days ago

1.5.27

8 days ago

1.5.5

1 month ago

1.5.4

1 month ago

1.5.3

1 month ago

1.5.2

2 months ago

1.5.1

2 months ago

1.5.0

2 months ago

1.5.9

1 month ago

1.5.8

1 month ago

1.5.7

1 month ago

1.5.6

1 month ago

1.4.89

2 months ago

1.4.91

2 months ago

1.4.90

2 months ago

1.4.93

2 months ago

1.4.92

2 months ago

1.4.95

2 months ago

1.4.94

2 months ago

1.4.97

2 months ago

1.4.96

2 months ago

1.4.99

2 months ago

1.4.98

2 months ago

1.5.10

1 month ago

1.5.12

1 month ago

1.5.11

1 month ago

1.5.14

1 month ago

1.5.13

1 month ago

1.5.16

1 month ago

1.5.15

1 month ago

1.5.18

1 month ago

1.5.17

1 month ago

1.5.19

1 month ago

1.5.21

1 month ago

1.5.20

1 month ago

1.5.23

1 month ago

1.5.22

1 month ago

1.5.25

1 month ago

1.5.24

1 month ago

1.5.26

1 month ago

1.3.50

5 months ago

1.4.20

4 months ago

1.3.53

5 months ago

1.3.54

5 months ago

1.4.22

4 months ago

1.3.51

5 months ago

1.4.21

4 months ago

1.3.52

5 months ago

1.4.24

4 months ago

1.3.57

5 months ago

1.4.23

4 months ago

1.3.58

5 months ago

1.4.26

4 months ago

1.4.25

4 months ago

1.3.56

5 months ago

1.4.28

4 months ago

1.4.27

4 months ago

1.3.59

5 months ago

1.4.29

4 months ago

1.3.60

4 months ago

1.2.92

6 months ago

1.3.61

4 months ago

1.2.93

6 months ago

1.4.31

3 months ago

1.3.64

4 months ago

1.2.96

6 months ago

1.4.30

3 months ago

1.3.65

4 months ago

1.2.97

6 months ago

1.4.33

3 months ago

1.3.62

4 months ago

1.2.94

6 months ago

1.4.32

3 months ago

1.3.63

4 months ago

1.2.95

6 months ago

1.4.35

3 months ago

1.3.68

4 months ago

1.4.34

3 months ago

1.3.69

4 months ago

1.4.37

3 months ago

1.3.66

4 months ago

1.2.98

6 months ago

1.4.36

3 months ago

1.3.67

4 months ago

1.2.99

6 months ago

1.4.39

3 months ago

1.4.38

3 months ago

1.3.31

5 months ago

1.3.32

5 months ago

1.3.30

5 months ago

1.3.35

5 months ago

1.3.36

5 months ago

1.3.33

5 months ago

1.3.34

5 months ago

1.3.39

5 months ago

1.3.37

5 months ago

1.3.43

5 months ago

1.4.11

4 months ago

1.3.40

5 months ago

1.4.10

4 months ago

1.3.41

5 months ago

1.4.13

4 months ago

1.3.46

5 months ago

1.4.12

4 months ago

1.3.47

5 months ago

1.4.15

4 months ago

1.3.44

5 months ago

1.4.14

4 months ago

1.3.45

5 months ago

1.4.17

4 months ago

1.4.19

4 months ago

1.3.48

5 months ago

1.4.18

4 months ago

1.3.49

5 months ago

1.4.6

4 months ago

1.4.5

4 months ago

1.4.3

4 months ago

1.4.2

4 months ago

1.4.1

4 months ago

1.4.0

4 months ago

1.3.10

5 months ago

1.3.13

5 months ago

1.3.14

5 months ago

1.3.11

5 months ago

1.3.17

5 months ago

1.3.18

5 months ago

1.3.15

5 months ago

1.3.16

5 months ago

1.3.19

5 months ago

1.3.20

5 months ago

1.3.24

5 months ago

1.3.25

5 months ago

1.3.22

5 months ago

1.3.23

5 months ago

1.3.28

5 months ago

1.3.26

5 months ago

1.3.27

5 months ago

1.3.7

5 months ago

1.3.6

5 months ago

1.3.5

5 months ago

1.3.4

5 months ago

1.3.3

5 months ago

1.3.2

5 months ago

1.3.0

6 months ago

1.4.9

4 months ago

1.4.8

4 months ago

1.4.7

4 months ago

1.3.9

5 months ago

1.3.8

5 months ago

1.4.80

3 months ago

1.4.82

3 months ago

1.4.81

3 months ago

1.4.84

3 months ago

1.4.83

3 months ago

1.4.85

2 months ago

1.4.88

2 months ago

1.4.87

2 months ago

1.3.90

4 months ago

1.4.60

3 months ago

1.3.93

4 months ago

1.3.94

4 months ago

1.4.62

3 months ago

1.3.91

4 months ago

1.4.61

3 months ago

1.3.92

4 months ago

1.4.64

3 months ago

1.3.97

4 months ago

1.4.63

3 months ago

1.3.98

4 months ago

1.4.66

3 months ago

1.3.95

4 months ago

1.4.65

3 months ago

1.3.96

4 months ago

1.4.68

3 months ago

1.4.67

3 months ago

1.3.99

4 months ago

1.4.69

3 months ago

1.4.71

3 months ago

1.4.70

3 months ago

1.4.73

3 months ago

1.4.72

3 months ago

1.4.75

3 months ago

1.4.74

3 months ago

1.4.77

3 months ago

1.4.76

3 months ago

1.4.79

3 months ago

1.4.78

3 months ago

1.3.71

4 months ago

1.3.72

4 months ago

1.4.40

3 months ago

1.3.70

4 months ago

1.4.42

3 months ago

1.3.75

4 months ago

1.4.41

3 months ago

1.3.76

4 months ago

1.4.44

3 months ago

1.3.73

4 months ago

1.3.74

4 months ago

1.4.46

3 months ago

1.3.79

4 months ago

1.4.45

3 months ago

1.4.48

3 months ago

1.3.77

4 months ago

1.4.47

3 months ago

1.3.78

4 months ago

1.4.49

3 months ago

1.3.82

4 months ago

1.3.83

4 months ago

1.4.51

3 months ago

1.3.80

4 months ago

1.4.50

3 months ago

1.3.81

4 months ago

1.4.53

3 months ago

1.3.86

4 months ago

1.4.52

3 months ago

1.3.87

4 months ago

1.4.55

3 months ago

1.3.84

4 months ago

1.4.54

3 months ago

1.3.85

4 months ago

1.4.57

3 months ago

1.4.56

3 months ago

1.4.59

3 months ago

1.3.88

4 months ago

1.4.58

3 months ago

1.3.89

4 months ago

1.2.91

6 months ago

1.2.85

6 months ago

1.2.84

6 months ago

1.2.89

6 months ago

1.2.87

6 months ago

1.2.88

6 months ago

1.2.90

6 months ago

1.2.81

6 months ago

1.2.82

6 months ago

1.2.80

6 months ago

1.2.69

6 months ago

1.2.70

6 months ago

1.2.71

6 months ago

1.2.74

6 months ago

1.2.75

6 months ago

1.2.72

6 months ago

1.2.79

6 months ago

1.2.76

6 months ago

1.2.77

6 months ago

1.2.67

7 months ago

1.2.68

7 months ago

1.2.65

7 months ago

1.2.66

7 months ago

1.2.60

7 months ago

1.2.63

7 months ago

1.2.64

7 months ago

1.2.61

7 months ago

1.2.62

7 months ago

1.2.49

7 months ago

1.2.52

7 months ago

1.2.53

7 months ago

1.2.50

7 months ago

1.2.51

7 months ago

1.2.56

7 months ago

1.2.57

7 months ago

1.2.54

7 months ago

1.2.55

7 months ago

1.2.59

7 months ago

1.2.45

7 months ago

1.2.46

7 months ago

1.2.43

7 months ago

1.2.44

7 months ago

1.2.47

7 months ago

1.2.48

7 months ago

1.2.42

7 months ago

1.2.41

7 months ago

1.2.40

7 months ago

1.2.39

7 months ago

1.2.38

7 months ago

1.2.36

7 months ago

1.2.35

7 months ago

1.2.34

7 months ago

1.2.33

7 months ago

1.2.32

7 months ago

1.2.31

7 months ago

1.2.30

7 months ago

1.2.28

7 months ago

1.2.27

7 months ago

1.2.26

7 months ago