Adaptateur HTTP
Occasionnellement, vous pouvez avoir besoin d’accéder au serveur HTTP sous-jacent, soit dans le contexte de l’application Nest, soit de l’extérieur.
Chaque serveur/bibliothèque HTTP natif (spécifique à une plateforme) (par exemple, Express et Fastify) est enveloppé dans un adaptateur. L’adaptateur est enregistré en tant que fournisseur globalement disponible qui peut être récupéré depuis le contexte de l’application, ainsi que injecté dans d’autres fournisseurs.
Stratégie hors contexte d’application
Pour obtenir une référence à l’HttpAdapter
depuis l’extérieur du contexte de l’application, appelez la méthode getHttpAdapter()
.
const app = await NestFactory.create(AppModule);const httpAdapter = app.getHttpAdapter();
Stratégie dans le contexte
Pour obtenir une référence à l’HttpAdapterHost
depuis l’intérieur du contexte de l’application, injectez-le en utilisant la même technique que pour tout autre fournisseur existant (par exemple, via l’injection par constructeur).
export class CatsService { constructor(private adapterHost: HttpAdapterHost) {}}
@Dependencies(HttpAdapterHost)export class CatsService { constructor(adapterHost) { this.adapterHost = adapterHost; }}
L’HttpAdapterHost
n’est pas un véritable HttpAdapter
. Pour obtenir l’instance réelle de l’HttpAdapter
, il suffit d’accéder à la propriété httpAdapter
.
const adapterHost = app.get(HttpAdapterHost);const httpAdapter = adapterHost.httpAdapter;
L’httpAdapter
est l’instance réelle de l’adaptateur HTTP utilisée par le framework sous-jacent. C’est une instance soit de ExpressAdapter
, soit de FastifyAdapter
(ces deux classes étendent AbstractHttpAdapter
).
L’objet adaptateur expose plusieurs méthodes utiles pour interagir avec le serveur HTTP. Cependant, si vous souhaitez accéder directement à l’instance de la bibliothèque (par exemple, l’instance d’Express), appelez la méthode getInstance()
.
const instance = httpAdapter.getInstance();