일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- githook
- 인라인핸들러
- GIT
- go
- nestjs
- JavaScript
- docker
- onDestory
- react
- smui
- 번역
- docker-network
- Terraform
- ...$$restProps
- IAC
- TypeScript
- bitwiseNot
- 도커
- 도커컨테이너
- testing
- GraphQL
- cron
- PostgreSQL
- :=
- svelte
- golang
- apiTest
- Svelte LifeCycle
- mock
- reactjs
Archives
- Today
- Total
Den`s blog
GoLang + Swagger 본문
반응형
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