2.3.0 • Published 4 months ago

@qq-framework/http v2.3.0

Weekly downloads
-
License
ISC
Repository
-
Last release
4 months ago

@qq-framework/http

Biblioteca do QQ-FRAMEWORK para requisições HTTP.

Instalação

  npm install @qq-framework/http --save

Funcionalidades

Uso/Exemplos

HttpService

Através dos métodos da classe HttpService é possível realizar requests HTTP de todos os verbos.


  • Importando o HttpModule
import { HttpModule } from '@qq-framework/http'

@Module({
    imports: [
        HttpModule.forRoot({ appName: process.env.npm_package_name }),
    ],
    ...
})
export class ImportacaoAtualizacaoProdutoModule {}

O método forRoot deve receber uma propriedade chamada appName. O valor dessa propriedade será incluída em um header chamado "qq-app-origem" de todas as requições realizadas através deste módulo

O process.env.npm_package_name utilizará o nome da aplicação definido no package.json


  • Executado requisição get através do HttpService
import { HttpService } from '@qq-framework/http'

@Injectable()
export class CommerceService implements ICommerceService {
    
    constructor(private readonly httpService: HttpService) {}
    
    ...
    
    doGet() {
        const result = await firstValueFrom(
            this.httpService.get(process.env.COMMERCE_SELECT_URL + `?sql=${sql}`).pipe(
                catchError((error: AxiosError) => {
                    ProcessLogModel.error('buscarPropriedadesBasicas', JSON.stringify(error.message))
                    throw new HttpException(error.message)
                })
            )
        )
    }
    
    ...
    
}
    

HttpInterceptor

Algumas funcionalidades são disponibilizadas para a sua aplicação através do HttpInterceptor.

  1. Headers qq-trace-id e qq-transaction-id: estes dois headers são adicionados automaticamente, tanto no request quanto no response das requisições, e tem por objetivo facilitar o processo de rastreio das requições.
  2. Padronização dos responses HTTP: utilizando o interceptador, ele padronizará as respostas dadas pela sua aplicação, tanto de sucesso quanto de erro
  • Adicionando o HttpInterceptor em seu projeto
//main.ts

import { HttpInterceptor } from '@qq-framework/http'

async function bootstrap() {
    ...
    
    app.useGlobalInterceptors(app.get(HttpInterceptor))

    ...
}