Swagger로 ExpressWebJs API 문서화



오늘날 거의 모든 애플리케이션은 다른 애플리케이션과 데이터를 공유하기 위해 연결되어야 합니다. 이를 수행하는 가장 좋은 방법은 API를 사용하는 것이며 ExpressWebjs 노드 API를 구축하기 위한 goto 프레임워크입니다.

그러나 이 자습서에서는 expressWebjs 과 함께 Swagger 사용법을 살펴보겠습니다.

스웨거란?
Swagger 사이트에서 Swagger의 정의를 찾을 수 있습니다.
Swagger는 OpenAPI 사양(OAS)을 위한 세계 최대의 API 개발자 도구 프레임워크로 설계 및 문서화에서 테스트 및 배포에 이르기까지 전체 API 수명 주기에 걸쳐 개발할 수 있습니다.

이 예에서는 swagger-ui-expressswagger-jsdoc 의 두 라이브러리를 사용합니다.

첫 번째는 swagger.json 파일 또는 인라인 개체에서 Swagger UI(swagger-ui 프로젝트를 기반으로 자동 생성된 보기)를 제공할 수 있는 모듈입니다.

두 번째는 ExpressWebjs의 Docs 디렉토리에 있는 JSDoc 주석을 사용하여 Swagger를 통합하는 방법입니다. 이는 특히 광범위한 API와 수십 개의 모델이 있는 경우 매우 유용합니다.

애플리케이션 설정


ExpressWebJ 설치



터미널에서 다음 명령을 실행하여 ExpressWebJs로 새 프로젝트를 만듭니다.

   npx expresswebcli new myNewApp


새로 만든 프로젝트로 cd합니다.

   cd myNewApp


expresswebjs를 시작하는 방법에 대한 작업은 내 문서 또는 expresswebjs 설명서를 참조하십시오.

스웨거 추가



이제 애플리케이션이 준비되었으므로



이제 루트 디렉토리에 swagger.json 파일을 생성하여 swagger를 통합할 수 있습니다.

{
    "definition": {
      "openapi": "3.0.n",
      "info": {
        "title": "My Website API Documentation",
        "version": "0.1.0",
        "description":
          "My website API docs with ExpressWebJs and documented with Swagger",
        "license": {
          "name": "MIT",
          "url": "https://spdx.org/licenses/MIT.html"
        },
        "contact": {
          "name": ""
        }
      },
      "servers": [
        {
          "url": "http://localhost:5100/api"
        }
      ]
    },
    "apis": ["./Docs/*.js"]
  }


"apis": ["./Docs/*.js"] 섹션은 실제 설명서가 있는 경로를 지정합니다. 우리의 경우 루트 디렉토리의 Docs 폴더에 있습니다.

그런 다음 이제 App/Service 디렉토리에 swagger 서비스를 만들 수 있습니다.

App/Service 디렉터리에서 index.js 파일로 Swagger 폴더를 생성해 보겠습니다. 경로는 App/Service/Swagger/index.js입니다.

 //App/Service/Swagger/index.js
const swaggerJsdoc = require("swagger-jsdoc");
const swaggerUi = require("swagger-ui-express");
const options = require("../../../swagger.json");

class Swagger{
  static run(){
    let specs = swaggerJsdoc(options);
    serverApp.use("/api-docs",swaggerUi.serve,swaggerUi.setup(specs,{exporer:true}));
  }
}

module.exports = Swagger;


ExpressWebJs 서비스 공급자



다음으로 응용 프로그램 서비스 공급자에 swagger 서비스를 등록합니다. App/Providers/AppServiceProvider.js 파일로 이동하여 부팅 시 실행할 swagger 서비스를 추가합니다.

 const swagger = require("../Service/swagger");

 class AppServiceProvider {
  /**
   * Register application services.
   */
  register() {
    return {
      //
    };
  }

  /**
   * Bootstrap any application services.
   *
   * @return void
   */
  boot() {
    swagger.run();
  }
}

module.exports = AppServiceProvider;


참고: 고유한 서비스 공급자를 만들 수 있습니다. ExpressWebjs ServiceProvider in the Documentation site에 대해 자세히 알아보십시오.

모든 설정이 완료되면 이제 Docs 디렉토리에서 API 문서 작성을 시작할 수 있습니다.

Swagger 문서를 보려면 다음을 사용하여 프로젝트를 실행하십시오.

  npm run dev


브라우저에서 http://127.0.0.1/api/api-docs로 이동합니다.

결론



제 글을 읽어주셔서 감사합니다
당신은 트위터에서 나를 따라갈 수 있습니다
트위터에서 ExpressWebJs를 팔로우할 수 있습니다.
github에서 별표 표시하는 것을 잊지 마세요ExpressWebJs.

의견 섹션에 질문이 있으면 알려주십시오. 😊

좋은 웹페이지 즐겨찾기