Nest.js + OpenAPI (Swagger)를 사용해보십시오.

마지막으로, 이전에 서버 측의 Typescript화 및 DB 액세스까지 할 수 있게 되었습니다.

전회: Nest.js 사용하기
지난번: Nest.js에서 Sequelize를 사용해보기

이번에는 클라이언트 측에서 액세스하는 부분을 만듭니다.
Nest.js 디폴트도 좋지만, RestAPI 표준 규격(이 되면 소문)의 OpenAPI(구 Swagger)를 도입하고 싶습니다.

(2019/12/11 추가)
최신 nestjs/swagger는 OpenAPI(Swagger3.0)를 지원하므로 이 페이지의 내용은 오래되었습니다.
nestjs/swagger4계에 관한 기사도 쓰고 있으므로, 그쪽을 참조해 주세요.
nestjs/swagger 3계(Swagger2.0)⇒4계(Swagger3.0(OpenAPI))로의 버전 업

OpenAPI(Swagger)란?



OpenAPI - Swagger: htps : // 슈게 r. 이오 / 도 cs / s 페시 후 카치 온 / 아보 t /

이것을 도입하면, API 사양서를 출력해 주는 뿐만이 아니라, API의 테스트를 할 수 있거나 꽤 편리한 툴입니다!
또한 openapi-generator을 사용하면 클라이언트 측에서 액세스하기위한 API 클라이언트도 자동 생성 할 수 있으므로 (Angular 용 코드 출력도 가능) 개발 공수를 훨씬 줄일 수 있습니다

소개



Nest.js 공식 도입 방법 가 쓰여 있기 때문에 그것을 따릅니다.

@nestjs/swagger 설치


npm install --save @nestjs/swagger swagger-ui-express

main.ts에서 Swagger 설정



src/main.ts
import { NestFactory } from '@nestjs/core';
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
import { ApplicationModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(ApplicationModule);

  const options = new DocumentBuilder()
    .setTitle('Cats example')
    .setDescription('The cats API description')
    .setVersion('1.0')
    .addTag('cats')
    .build();
  const document = SwaggerModule.createDocument(app, options);
  SwaggerModule.setup('api', app, document);

  await app.listen(3000);
}
bootstrap();

준비는 이것뿐입니다!

시작해보기


docker-compose up로 시작하고 브라우저에서 /api에 액세스합니다.



엄청 쉽습니다! ! !

JSON 형식으로 출력


/api-json에 액세스하면 JSON 형식으로 출력할 수도 있습니다.

좋은 웹페이지 즐겨찾기