@xapi-js/adaptor-nestjs
v1.3.0
Published
NestJS adaptor for X-API.
Readme
@xapi-ts/adaptor-nestjs
This package provides a NestJS adaptor for X-API data.
Installation
# npm
npm install @xapi-ts/adaptor-nestjs
# yarn
yarn add @xapi-ts/adaptor-nestjs
# pnpm
pnpm add @xapi-ts/adaptor-nestjs
# bun
bun add @xapi-ts/adaptor-nestjs
# deno
deno add @xapi-ts/adaptor-nestjsUsage
@xapi-ts/adaptor-nestjs provides NestJS interceptors to automatically handle X-API request deserialization and response serialization.
XapiRequestInterceptor
Use XapiRequestInterceptor to automatically parse incoming application/xml requests into XapiRoot objects.
// app.controller.ts
import { Controller, Post, UseInterceptors, Body } from '@nestjs/common';
import { XapiRoot } from '@xapi-ts/core';
import { XapiRequestInterceptor } from '@xapi-ts/adaptor-nestjs';
@Controller('xapi')
export class AppController {
@Post('/')
@UseInterceptors(XapiRequestInterceptor)
handleXapi(@Body() xapi: XapiRoot): XapiRoot {
console.log('Received XapiRoot:', xapi.parameters.get('service')?.value);
// Process the XapiRoot object
const responseXapi = new XapiRoot();
responseXapi.addParameter({ id: 'result', value: 'success' });
return responseXapi;
}
}XapiResponseInterceptor
Use XapiResponseInterceptor to automatically serialize XapiRoot objects returned from your NestJS controllers into application/xml responses.
// app.controller.ts
import { Controller, Post, UseInterceptors, Body } from '@nestjs/common';
import { XapiRoot } from '@xapi-ts/core
import { XapiRequestInterceptor, XapiResponseInterceptor } from '@xapi-ts/adaptor-nestjs';
@Controller('xapi')
export class AppController {
@Post('/')
@UseInterceptors(XapiRequestInterceptor, XapiResponseInterceptor)
handleXapi(@Body() xapi: XapiRoot): XapiRoot {
console.log('Received XapiRoot:', xapi.parameters.get('service')?.value);
// Process the XapiRoot object
const responseXapi = new XapiRoot();
responseXapi.addParameter({ id: 'result', value: 'success' });
return responseXapi;
}
}@xapi-ts/adaptor-nestjs
이 패키지는 X-API 데이터를 위한 NestJS 어댑터를 제공합니다.
설치
# npm
npm install @xapi-ts/adaptor-nestjs
# yarn
yarn add @xapi-ts/adaptor-nestjs
# pnpm
pnpm add @xapi-ts/adaptor-nestjs
# bun
bun add @xapi-ts/adaptor-nestjs
# deno
deno add @xapi-ts/adaptor-nestjs사용법
@xapi-ts/adaptor-nestjs는 X-API 요청 역직렬화 및 응답 직렬화를 자동으로 처리하는 NestJS 인터셉터를 제공합니다.
XapiRequestInterceptor
들어오는 application/xml 요청을 XapiRoot 객체로 자동 구문 분석하려면 XapiRequestInterceptor를 사용하십시오.
// app.controller.ts
import { Controller, Post, UseInterceptors, Body } from '@nestjs/common';
import { XapiRoot } from '@xapi-ts/core';
import { XapiRequestInterceptor } from '@xapi-ts/adaptor-nestjs';
@Controller('xapi')
export class AppController {
@Post('/')
@UseInterceptors(XapiRequestInterceptor)
handleXapi(@Body() xapi: XapiRoot): XapiRoot {
console.log('Received XapiRoot:', xapi.parameters.get('service')?.value);
// XapiRoot 객체 처리
const responseXapi = new XapiRoot();
responseXapi.addParameter({ id: 'result', value: 'success' });
return responseXapi;
}
}XapiResponseInterceptor
NestJS 컨트롤러에서 반환된 XapiRoot 객체를 application/xml 응답으로 자동 직렬화하려면 XapiResponseInterceptor를 사용하십시오.
// app.controller.ts
import { Controller, Post, UseInterceptors, Body } from '@nestjs/common';
import { XapiRoot } from '@xapi-ts/core
import { XapiRequestInterceptor, XapiResponseInterceptor } from '@xapi-ts/adaptor-nestjs';
@Controller('xapi')
export class AppController {
@Post('/')
@UseInterceptors(XapiRequestInterceptor, XapiResponseInterceptor)
handleXapi(@Body() xapi: XapiRoot): XapiRoot {
console.log('Received XapiRoot:', xapi.parameters.get('service')?.value);
// XapiRoot 객체 처리
const responseXapi = new XapiRoot();
responseXapi.addParameter({ id: 'result', value: 'success' });
return responseXapi;
}
}