Spaces:
Sleeping
Sleeping
| # Nestjs + fastapi | |
| You can easily call this API from a NestJS microservice. | |
| **.env** | |
| ```env | |
| FASTAPI_BASE_URL=http://localhost:8000 | |
| SECRET_TOKEN=your_secret_token_here | |
| ``` | |
| **fastapi.service.ts** | |
| ```typescript | |
| import { Injectable } from "@nestjs/common"; | |
| import { HttpService } from "@nestjs/axios"; | |
| import { ConfigService } from "@nestjs/config"; | |
| import { firstValueFrom } from "rxjs"; | |
| @Injectable() | |
| export class FastAPIService { | |
| constructor( | |
| private http: HttpService, | |
| private config: ConfigService, | |
| ) {} | |
| async analyzeText(text: string) { | |
| const url = `${this.config.get("FASTAPI_BASE_URL")}/text/analyse`; | |
| const token = this.config.get("SECRET_TOKEN"); | |
| const response = await firstValueFrom( | |
| this.http.post( | |
| url, | |
| { text }, | |
| { | |
| headers: { | |
| Authorization: `Bearer ${token}`, | |
| }, | |
| }, | |
| ), | |
| ); | |
| return response.data; | |
| } | |
| } | |
| ``` | |
| **app.module.ts** | |
| ```typescript | |
| import { Module } from "@nestjs/common"; | |
| import { ConfigModule } from "@nestjs/config"; | |
| import { HttpModule } from "@nestjs/axios"; | |
| import { AppController } from "./app.controller"; | |
| import { FastAPIService } from "./fastapi.service"; | |
| @Module({ | |
| imports: [ConfigModule.forRoot(), HttpModule], | |
| controllers: [AppController], | |
| providers: [FastAPIService], | |
| }) | |
| export class AppModule {} | |
| ``` | |
| **app.controller.ts** | |
| ```typescript | |
| import { Body, Controller, Post, Get } from '@nestjs/common'; | |
| import { FastAPIService } from './fastapi.service'; | |
| @Controller() | |
| export class AppController { | |
| constructor(private readonly fastapiService: FastAPIService) {} | |
| @Post('analyze-text') | |
| async callFastAPI(@Body('text') text: string) { | |
| return this.fastapiService.analyzeText(text); | |
| } | |
| @Get() | |
| getHello(): string { | |
| return 'NestJS is connected to FastAPI'; | |
| } | |
| } | |
| ``` | |
| [π Back to Main README](../README.md) | |