@nclabs/nestjs-rpc-module
Advanced tools
Comparing version 0.1.1 to 0.1.2
{ | ||
"name": "@nclabs/nestjs-rpc-module", | ||
"version": "0.1.1", | ||
"version": "0.1.2", | ||
"description": "Utilitário NestJS para configuração de rotas e cache em microsserviços. Utilizado especificamente para projetos nclabs", | ||
@@ -5,0 +5,0 @@ "main": "./lib/index.js", |
108
README.md
@@ -23,4 +23,3 @@ # nestjs-nclabs-rpc-module | ||
Carrega o arquivo de configuração (ex.: docker-compose.env) compartilhado entre todos os serviços e disponibiliza | ||
uma biblioteca de configuração com os valores de ambientes do serviço. | ||
Carregar o arquivo de configuração (ex.: docker-compose.env) compartilhado entre todos os serviços. | ||
@@ -37,3 +36,3 @@ - As váriáveis descritas no arquivo de configuração são carregadas e tratadas pela biblioteca de configuração. | ||
Variável de ambiente setada no docker-compose.yml: | ||
Variável de ambiente que deve ser setada no docker-compose.yml: | ||
@@ -83,3 +82,4 @@ ```bash | ||
| [**NclabsConfig**](#nclabsconfig) | Lib | * | Disponibiliza todas as váriaveis de ambiente | | ||
| [**NclabsAction**](#controller---method-configuration) | Decorator | Controller | Configura requisições RPC e HTTP (opcional) | | ||
| [**NclabsHttp**](#controller---method-configuration) | Decorator | Controller | Configura requisições HTTP | | ||
| [**NclabsAction**](#controller---method-configuration) | Decorator | Controller | Configura requisições RPC | | ||
| [**NclabsEvent**](#controller---method-configuration) | Decorator | Controller | Configura envio de eventos RPC | | ||
@@ -128,8 +128,8 @@ | [**NclabsCtx**](#contexto) | Decorator | Controller | Acessa informações do contexto do microserviço | | ||
/** | ||
* HTTP REQUEST | ||
*/ | ||
@NclabsAction({ | ||
name: 'your-action-name', | ||
rest: { | ||
methods: ['GET', 'POST'], | ||
path: '/your-path', | ||
}, | ||
path: 'your-path/:id', | ||
methods: ['GET', 'POST'], | ||
cache: { | ||
@@ -140,3 +140,3 @@ keys: ['#headers.authorization', '#data.id', 'some-key'], | ||
}) | ||
youMethodName(@NclabsCtx() context: NclabsContext) { | ||
youRpcMethodName(@NclabsCtx() context: NclabsContext) { | ||
// Do something | ||
@@ -146,56 +146,82 @@ return; | ||
/** | ||
* RPC CALL | ||
*/ | ||
@NclabsAction({ | ||
name: 'your-action-name', | ||
cache: { | ||
keys: ['#headers.authorization', '#params.id', 'some-key'], | ||
ttl: 1200, // seconds | ||
}, | ||
}) | ||
youRpcMethodName(@NclabsCtx() context: NclabsContext) { | ||
// Do something | ||
return; | ||
} | ||
... | ||
``` | ||
- RPC: O método poderá ser requisitado pelo padrão `service.name` | ||
Onde: | ||
#### HTTP REQUEST: | ||
- service = SERVICE_NAME (definido no environment do docker compose) | ||
- name = your-action-name (configurado no decorator do método) | ||
Registra a rota definida em `path` para os métodos indicados em `methods`. Quando o parâmetro `methods` não for informado, todos os métodos são permitidos. | ||
No Exemplo acima: | ||
- GET /your-path/:id | ||
- POST /your-path/:id | ||
<br /> | ||
- HTTP: A configuração `rest` do decorator irá disponibilizar 1 rotas de acesso HTTP para cada _method_: | ||
#### RPC: | ||
- GET /your-path | ||
- POST /your-path | ||
O método poderá ser requisitado pelo padrão `service.name` | ||
Onde: | ||
- service = SERVICE_NAME (definido no environment do docker compose) | ||
- name = your-action-name (configurado no decorator do método) | ||
<br /> | ||
- CACHE: A configuração `cache` irá disponibilizar um cache para o retorno da requisição com as chaves especificadas no `keys` e com o TTL especificado no `ttl`. | ||
#### CACHE: | ||
O cacher gera a chave do cache com base no serviço, o nome da ação e as chaves especificadas no `keys`. Que aceita valores estaticos, variáveis | ||
previamente carregadas (lembrando que o NestJs carrega os decorator antes de instanciar os módulos) e variáveis do contexto que poderão ser acessadas | ||
através do prefixo `#` sendo possível utilizar qualquer atributo de retorno do [contexto](#contexto). | ||
O atributo `cache` disponibiliza párâmetros de configuração do cache para o retorno da requisição com as chaves especificadas no `keys` e com o TTL especificado no `ttl`. | ||
A sintaxe da chave é: | ||
O cacher gera a chave do cache com base no serviço, protocolo (HTTP/RCP), nome do método e as chaves especificadas no `keys`. Que aceita valores estaticos, variáveis previamente carregadas (lembrando que o NestJs carrega os decorator antes de instanciar os módulos) e variáveis do contexto que poderão ser acessadas | ||
através do prefixo `#` sendo possível utilizar qualquer atributo de retorno do [contexto](#contexto). | ||
<SERVICE_NAME>.<action_name>.<key 1>.<key 2>.<key 3> | ||
A sintaxe da chave é: | ||
```javascript | ||
// Exemplo: | ||
<SERVICE_NAME>:<protocolo>-<method>.<key 1>.<key 2>.<key 3> | ||
// SERVICE_NAME = senior-auth | ||
```javascript | ||
// Exemplo: | ||
@NclabsAction({ | ||
name: 'user-credential', | ||
cache: { | ||
keys: [ | ||
'#headers.authorization', // value from context.headers | ||
'#data.id', // value from context.data | ||
'some-key' // static value | ||
], | ||
ttl: 1200, // seconds | ||
}, | ||
}) | ||
// SERVICE_NAME = senior-auth | ||
... | ||
@NclabsHttp({ | ||
path: '/user-credential:id', | ||
methods: ['GET'], | ||
cache: { | ||
keys: [ | ||
'#headers.authorization', // value from context.headers | ||
'#params.id', // value from context.params | ||
'some-key' // static value | ||
], | ||
ttl: 1200, // seconds | ||
}, | ||
}) | ||
getUserCredential(...) { | ||
} | ||
``` | ||
... | ||
No código exemplo, chave do cache será algo assim: | ||
``` | ||
senior-auth.user-credential.Bearer A8DA9S8Asc8ca9sud0c0sgh.123.some-key | ||
A chave gerada para o cache será algo assim: | ||
senior-auth:http-get-getUserCredential.Bearer A8DA9S8Asc8ca9sud0c0sgh.123.some-key | ||
<br /> | ||
@@ -202,0 +228,0 @@ |
429441
427