Den`s blog

GoLang + Swagger 본문

GoLang

GoLang + Swagger

shinYeongHyeon 2021. 3. 15. 00:31
반응형

API 만드는 프로젝트에 Swagger 를 붙여보자

GoLang 에서는 swaggo 를 활용해서 붙일 수 있다.


Step1. Install

# 복사 스크롤 용의성

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

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

# 복사 스크롤 용의성

swag init -g main.go

# 복사 스크롤 용의성

도큐먼트들을 만들어 준다. Main 파일로 Init

Step4. Import

import (
    _ "{프로젝트명}/docs" // docs is generated by Swag CLI, you have to import it.
    httpSwagger "github.com/swaggo/http-swagger"

)

httpSwagger 는 Step2 작업으로 임포트 됐을거고, _ 부분을 따로 임포트 해주어야 한다 ! 본인의 프로젝트 뒤에 docs 를 해주면 된다.

 

위 작업까지 해주고 실행해주면 아래처럼 이쁜 초기 세팅된 Swagger UI 두둥등장

 

구몬이 되어준 링크 쇽쇽

728x90
반응형

'GoLang' 카테고리의 다른 글

[Golang] runtime.Goexit vs os.Exit  (0) 2021.08.15
GoLang 테스트 전체 돌리기  (0) 2021.07.22
GoLang + Docker (w/ MacBook M1)  (0) 2021.03.14
Golang build & run with Args  (0) 2021.02.13
Go 코드 컴파일에 대해서 (feat. static linking)  (0) 2021.02.08
Comments