Swagger UI를 CircleCI로 호스팅

Swagger, CircleCI 정보



이하의 기사 등 참고.

htps : // 이 m/g 버렸다/있어 ms/342073 7607fd4082bd
htps : // m / go ld / ms / 4c7 62434 a f455 977c2

개요



하고 싶었던 일



Github의 리포지토리에 있는 Swagger(혹은 OpenAPI)의 정의 파일을 문서로서 팀에서 공유하고 싶었지만, 몇 가지 방법을 검토해 실제로 시도해봤지만 모두가 불필요한 커뮤니케이션이나 작업 없이 할 수 있는 것이 없었다.

그런 가운데 아래의 기사를 발견했으므로, 이것을 CircleCI의 Artifacts에 업로드하면 좋다고 생각했기 때문에 시험해 보았습니다.

했던 일



Swagger UI를 CircleCI의 Artifacts에 업로드하여 빌드별로 볼 수 있도록 한 다음 단계.

Swagger UI를 Artifacts에 저장하기 Step 추가


      - run:
          name: swagger-ui
          command: |
            git clone https://github.com/swagger-api/swagger-ui ~/swagger-ui
            mkdir swagger-ui
            cp -R ~/swagger-ui/dist/ swagger-ui
            cp doc/openapi.yml swagger-ui/dist/
            export DEFAULT_URL='https:\/\/petstore.swagger.io\/v2\/swagger.json'
            export DOCUMENT_URL='openapi.yml'
            sed -i -e "s/$DEFAULT_URL/$DOCUMENT_URL/g" ./swagger-ui/dist/index.html
      - store_artifacts:
          path: swagger-ui/dist

앞서 든 기사에도 있듯이 swagger-ui의 dist를 두면 그대로 Swagger UI를 볼 수 있다.

또 이번은 doc/openapi.yml에 정의 파일을 두고 있으므로 그것도 같은 디렉토리에 카피해 둔다.
원래 정의 파일의 위치는 프로젝트에 따라 다르다고 생각하므로 적절하게 읽어보십시오.
git clone https://github.com/swagger-api/swagger-ui ~/swagger-ui
mkdir swagger-ui
cp -R ~/swagger-ui/dist/ swagger-ui
cp doc/openapi.yml swagger-ui/dist/

그대로도 문제는 없지만, 디폴트에서는 문서의 URL이 https://petstore.swagger.io/v2/swagger.json 로 되어 있으므로, openapi.yml 에 재기록해 둔다.
이렇게 하면 매번 문서의 URL을 바꿀 필요가 없어진다.
export DEFAULT_URL='https:\/\/petstore.swagger.io\/v2\/swagger.json'
export DOCUMENT_URL='openapi.yml'
sed -i -e "s/$DEFAULT_URL/$DOCUMENT_URL/g" ./swagger-ui/dist/index.html

Artifacts 방문



빌드가 성공하고 Artifacts가 업로드되면 빌드 화면의 Artifacts에 다음과 같이 표시된다.

index.html을 열면 리포지토리 정의 파일이 로드된 상태에서 Swagger UI를 볼 수 있습니다.



인증 방법을 생각할 필요도 없고(CircleCI의 계정 베이스로 좋으면), 서버의 관리등도 필요 없기 때문에 즐거울 것이라고 생각했습니다.

이상.

좋은 웹페이지 즐겨찾기