Openapi Code Generator

nest.js 프로젝트시 Swagger 를 사용한다.

스웨거 사용시 api 스펙 문서를 생성할수 있는데 해당 문서로 Client Code ( feat axios )를 생성 할수 있다.

클라이언트 코드생성을 간단히 하는 방법을 정리 해본다.

1.OpenAPI Generator 설치

설치하는 방법은 여러가지로 제공 한다. homebrew 설치 npm 설치 .. 등등.

지금은 npm 기반으로 설치 하겠다. ( 사전에 JDK 설치가 필요함 )

npm i @openapitools/openapi-generator-cli --save-dev

2. Generator Config 파일 작성

root 경로에 openapitools.json 파일을 생성후 아래 코드 작성.

{
  "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json",
  "spaces": 2,
  "generator-cli": {
    "version": "6.6.0",
    "generators": {
      "v3.0": {
        "generatorName": "typescript-axios",
        "output": "./output/",
        "glob": "swagger.json"
      }
    }
  }
}

3. Script 등록 및 Generator 실행

/* package.json*/
{
  "scripts":{
      "openapi-client-gen": "openapi-generator-cli generate",
  }
}

script 실행

npm run openapi-client-gen

결과물

생성된 파일 구조

  • index.ts: 모듈을 모아주는 파일
  • configuration.ts : Axios 모듈을 사용하기 위한 설정
  • base.ts , common.ts: 공통적으로 사용하는 모듈 정의
  • api.ts : 클라이언트에서 직접사용하는 모듈 ( API 문서로 정의한 API )
This entry was posted in Javascript, nodejs. Bookmark the permalink.

Leave a comment