처음엔 정말 외계어같던 swagger 내용들도 서서히 차츰차츰 이해가 되어가고 있다.
영어 문서와 숱한 외국인들의 stackflow 대화를 엿보면서 겨우겨우 완성 중인 api-docs.
가장 복병이었던 것이 authorization으로 jwt 토큰 보안을 구현해내는 일이었다.
open api 버전이나 swagger 버전이 업그레이드 되면서 계속 docs를 짜는 구조나 단어들이 바뀌어서
해외 블로그나 다른 자료들을 봐도 제대로 따라잡기가 어려웠다.
또한 yaml로 된 자료가 많아서
yaml json converter 웹사이트까지 활용해가면서 만들었음 ^_ㅠ
https://onlineyamltools.com/convert-yaml-to-json
그래도 swagger 공식문서가 꽤나 잘되어 있어서,
parameter / header / query / body 부분은 공식문서를 잘 참고해서 만들었다.
https://swagger.io/docs/specification/authentication/bearer-authentication/
마지막 복병이었던 jwt.
securityschemes도 잘 짜고 다 잘 한 거 같은데 왜 안될까 싶었는데
정말 허무하게도 앞에 Bearer 를 붙이고 한 칸 띄어서, 값이 전달이 안 됐던 거였다.
Bearer 떼고 그냥 토큰 내용 적자 마자 Curl에서도 그렇고 슝슝 빠르게 전송 잘 됨.. so 허무 and 다행..
securitySchemes: {
BearAuth: {
name: "authorization",
type: "http",
scheme: "bearer",
in: "header",
bearFormat: "JWT",
},
},
=> 해당 내용은 components 안에 적어준다.
떡하니 bearer shceme라고 적혀 있구나. 알아서 떼어주는 거였어..
그리고 컴포넌트 바깥에
security: {
BearAuth: [],
},
적용해주면 전체 api 한정으로 header token을 저장해서 authorization 정보를 보유한 채 테스트 가능하고,
각 테스트마다 적용해주고 싶으면 위 내용을 각 path 안에 적어주면 된다.
이 자료가 나처럼 헤매고 있는 swagger 어린양에게 도움이 되길 바란다.,.
'오늘은 프로젝트 중' 카테고리의 다른 글
[swagger] 파일 분리하지 않는 예시들 (0) | 2021.08.16 |
---|---|
피가 되고 살이 되는 jwt & refresh토큰 지식들 (0) | 2021.08.10 |
GRAPHQL 관련 참고 블로그 (0) | 2021.07.23 |
[토이프로젝트] 우정테스트 코딩 (0) | 2021.07.05 |
github 페이지를 여는데 readme(리드미가) 나올 때 (0) | 2021.06.29 |