GoLang + Swagger
Golang
API 만드는 프로젝트에 Swagger 를 붙여보자
GoLang 에서는 swaggo 를 활용해서 붙일 수 있다.
Step1. Install
Code
# 복사 스크롤 용의성 go get -u github.com/swaggo/swag/cmd/swag go get -u github.com/swaggo/http-swagger go get -u github.com/alecthomas/template # 복사 스크롤 용의성
swag
- Swagger 2.0 의 Go annotations 활용
http-swagger
- Swagger UI 를 doc 으로 만들어 줌
template
- 뭐 필수란다, 없으면 에러 뜬다고..
Step2. Definition
Code
type test struct { A int B string } // @title onlyOurs API // @version 0.0.1 // @description This is onlyOurs API // @host localhost:9999 // @BasePath / func main() { router := mux.NewRouter() router.HandleFunc("/", func(w http.ResponseWriter, rq *http.Request) { core.WriteJSON(w, test { 5, "test", }) }) router.PathPrefix("/swagger").Handler(httpSwagger.WrapHandler) http.ListenAndServe(":9999", router) }
내가 사용한 샘플 코드이다. router.PathPrefix("/swagger").Handler(httpSwagger.WrapHandler)
로 라우팅해주고, Annotation 들로 설명 적기
Step3. Docs Create
Code
# 복사 스크롤 용의성 swag init -g main.go # 복사 스크롤 용의성
도큐먼트들을 만들어 준다. Main 파일로 Init
Step4. Import
Code
import ( _ "{프로젝트명}/docs" // docs is generated by Swag CLI, you have to import it. httpSwagger "github.com/swaggo/http-swagger" )
httpSwagger 는 Step2 작업으로 임포트 됐을거고, _ 부분을 따로 임포트 해주어야 한다 ! 본인의 프로젝트 뒤에 docs 를 해주면 된다.
위 작업까지 해주고 실행해주면 아래처럼 이쁜 초기 세팅된 Swagger UI 두둥등장
구몬이 되어준 링크 쇽쇽