대가는 결과를 만든다

swagger ui에서 기본 swagger.json url 변경하는 법 본문

개발/Web관련

swagger ui에서 기본 swagger.json url 변경하는 법

yunzema 2019. 12. 18. 15:37
반응형

server side에서 swagger ui로 간단히 api 목록 페이지를 구성하려고 하는데, 기본 swagger ui 프리셋에 적용되어 있는 default url을 바꾸는 방법을 찾을 수 가 없다. (기본으로 petstore의 api목록이 뜸)

 

같은 이슈에 대한 답변을 찾아 기록한다.

 

const fs = require("fs")
const express = require("express")
const pathToSwaggerUi = require("swagger-ui-dist").absolutePath()

const indexContent = fs.readFileSync(`${pathToSwaggerUi}/index.html`).toString()
  .replace("https://petstore.swagger.io/v2/swagger.json", "http://your_swagger.json_url")

const app = express()

app.get("/openapi", (req, res) => res.send(indexContent))
app.use(express.static(pathToSwaggerUi))

app.listen(3000)

swagger ui를 구성하는 html 파일을 읽은 후에 거기서 default url 부분만 자신의 swagger.json이 존재하는 url로 대체해주는 방법이다. 뭔가 엄청 좋은 방법은 아닌 것 같다..

 

아래 링크의 방법으로도 구성해보았으나, redirect를 하는 방법이라 url이 변경되는 것은 의도하지 않아서 뭔가 방법이 필요하다..

http://jeonghwan-kim.github.io/%EA%B8%B0%EC%A1%B4-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%99%80-swagger-ui-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0/

 

참고 : https://github.com/swagger-api/swagger-ui/issues/4624

 

swagger-ui-dist change url server side · Issue #4624 · swagger-api/swagger-ui

I am following the installation document and using swagger-ui-dist in my Node.js project. The example is working fine but changing the url I need to edit node_modules/swagger-ui-dist/index.html. Is...

github.com

 

Comments