@qq-framework/http
v2.3.0
Published
@qq-framework/http
Downloads
293
Keywords
Readme
@qq-framework/http
Biblioteca do QQ-FRAMEWORK para requisições HTTP.
Instalação
npm install @qq-framework/http --save
Funcionalidades
- HttpService: serviço para realização de requisições HTTP
- HttpInterceptor: Interceptador de requisições HTTP
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
.
- Headers
qq-trace-id
eqq-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. - 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))
...
}