기존 노드에 대한 스웨거 문서 생성JS 서버
Swagger 웹사이트에 따르면, 두 가지 접근법이 있습니다: 상향식과 하향식.
기존 노드가 있습니다.Azure 환경에 배치하고 싶은 JS 서버로 Swagger 문서(API APP)가 필요합니다.
코드를 사용하여 스웨거를 생성하는 도구를 아는 사람이 있습니까?당신이 튜토리얼을 가리킬 수 있다면 훨씬 더 좋습니다.저는 그것을 찾을 수 없었어요.
질문이 좀 오래되었지만 여전히 그렇습니다.다음과 같은 분석 미들웨어를 내장하는 것만으로도 완전 자동 스웨거(OpenAPI) 사양 생성이 가능합니다: https://github.com/mpashkovskiy/express-oas-generator
const express = require('express');
const expressOasGenerator = require('express-oas-generator');
let app = express();
expressOasGenerator.init(app, {});
서비스에 대해 일부 클라이언트 또는 REST API 테스트를 실행하고 http://host:port/api-docs를 엽니다.
이 튜토리얼을 따라 스웨거를 기존 익스프레스 애플리케이션에 통합하는 것은 어렵지 않습니다.
일반적으로 다음 단계를 수행할 수 있습니다.
종속성을 당사에 추가합니다.
package.json
그리고 실행npm install
설치할 수 있습니다.종속성은 다음과 같아야 합니다."dependencies": { "swagger-node-express": "~2.0", "minimist": "*", "body-parser": "1.9.x", ... }
Swagger-UI의 zip 프로젝트를 다운로드하고 복사합니다.
dist
폴더를 프로젝트의 루트 디렉터리에 저장합니다. 디렉터리는 거의 다음과 같아야 합니다.
다음의 시작 부분에 종속성을 소개합니다.
app.js
:var argv = require('minimist')(process.argv.slice(2)); var swagger = require("swagger-node-express"); var bodyParser = require( 'body-parser' );
Swagger 문서에 대한 하위 경로 설정:
var subpath = express(); app.use(bodyParser()); app.use("/v1", subpath); swagger.setAppHandler(subpath);
반드시
/dist
는 다음과 같은 형식으로 정적 파일을 처리할 수 있습니다.app.use(express.static('dist'));
API에 대한 정보를 설정합니다.
swagger.setApiInfo({ title: "example API", description: "API to do something, manage something...", termsOfServiceUrl: "", contact: "yourname@something.com", license: "", licenseUrl: "" });
소개하다
/dist/index.html
스웨거 UI의 경우:subpath.get('/', function (req, res) { res.sendfile(__dirname + '/dist/index.html'); });
스웨거 구성을 완료합니다.
swagger.configureSwaggerPaths('', 'api-docs', ''); var domain = 'localhost'; if(argv.domain !== undefined) domain = argv.domain; else console.log('No --domain=xxx specified, taking default hostname "localhost".'); var applicationUrl = 'http://' + domain; swagger.configure(applicationUrl, '1.0.0');
문서 파일 종속성 구성
/dist/index.html
:if (url && url.length > 1) { url = decodeURIComponent(url[1]); } else { <del>url = "http://petstore.swagger.io/v2/swagger.json";</del> url = "/api-docs.json"; }
만들다
api-docs.json
당신의 API 정보를 파일로 작성하고, 그것을 에 넣습니다.dist
폴더를 누릅니다.
로컬에서 Express 앱 실행, 방문http://localhost:3000/v1
우리는 스웨거 문서를 확인할 수 있습니다.
당신이 참고할 수 있도록 제 테스트 샘플 레포 샘플입니다.
제가 알기로는 다음과 같은 옵션이 있습니다.
옵션 2로 이동하면 swagger-ui-express를 사용하여 swagger-ui를 생성할 수 있습니다.
많은 개발자들이 여전히 이 문제를 겪고 있기 때문에 저는 도움을 주기 위해 오픈 소스 도구를 만들었습니다. 이 도구는 일종의 Git for APIs와 비슷합니다.API를 개발하는 동안 프록시를 실행하여 트래픽을 분석하고 API의 동작이 변경되면 사양을 업데이트합니다.워크플로우를 통해 많은 시간을 절약할 수 있기를 바랍니다. https://github.com/opticdev/optic
대부분의 대안은 Json, Yaml 또는 JSdocs에 내장된 API 사양을 필요로 합니다.반면에 HTTP 요청을 가로채고 주문형으로 사양을 구축하는 런타임 분석기가 있습니다.
express-sitemap-map은 설정 시 Express 개체와 해당 경로를 검사하는 다른 접근 방식을 따릅니다.따라서 항상 기존 익스프레스 인스턴스에 설치된 경로에 대한 최신 스웨거 UI를 제공합니다.
const sitemap = require('express-sitemap-html')
...
sitemap.swagger('Title', app) // app is an express instance
ㅠㅠㅠㅠㅠㅠㅠ UI ㅠㅠㅠ/api-docs
.
언급URL : https://stackoverflow.com/questions/33534488/generate-swagger-document-for-existing-nodejs-server
'source' 카테고리의 다른 글
SQL 서버 DATEPART와 동등한 Oracle (0) | 2023.07.06 |
---|---|
임시 테이블을 명시적으로 삭제하거나 SQL Server에서 처리하도록 허용 (0) | 2023.07.06 |
스프링 부트를 사용하여 양방향 SSL 구현 (0) | 2023.07.06 |
존재함/존재하지 않음: 'select 1' vs 'select field' (0) | 2023.07.06 |
Oracle 함수가 있는 문자열에서 숫자 추출 (0) | 2023.07.06 |