Keluar dari neraka komentar Go Swagger - saya membuat Swaggo
(marketplace.visualstudio.com)Halo,
Pernah stres gara-gara komentar Swagger saat mengembangkan API dengan Go?
Saya selalu kesulitan seperti ini:
- "Argumen ke-4
// @Paramiturequiredataudescriptionya...?" - "Salah ketik
dto.UserRequest, baru ketahuan saat runtime" - "Setiap kali harus mencari lagi arti komentar ini"
Karena itu, saya membuat ekstensi VS Code bernama Swaggo.
Bagaimana cara kerjanya?
Cara lama:
// @Param id query string true "사용자 ID"
// @Success 200 {object} dto.UserResponse "성공"
Kita harus menghafal urutannya, dan tidak langsung jelas mana yang apa.
Cara Swaggo:
@Param(name="id", in="query", type=string, required=true, desc="사용자 ID")
@Success(code=200, schema=dto.UserResponse, desc="성공")
Begitu diketik, format ini otomatis diubah menjadi komentar Swagger standar.
Di editor, tampilannya berupa anotasi yang lebih mudah dibaca, sementara di file aslinya disimpan sebagai komentar standar.
Fitur utama
✅ Nama parameter eksplisit - tidak perlu menghafal urutan
✅ Autocomplete IDE - nama anotasi, key, hingga tipe terisi otomatis
✅ Inferensi tipe - struktur Go dikenali otomatis
✅ Konversi real-time - langsung diubah menjadi komentar Swagger saat diketik
✅ Pratinjau hover - hasil konversi bisa langsung dilihat
✅ Snippet - menyediakan template GET/POST
Contoh penggunaan nyata
@Summary("교실 생성")
@Description("새로운 교실을 생성합니다")
@Tags("classroom", "admin")
@Accept("json")
@Produce("json")
@Param(name="body", in="body", type=dto.CreateClassroomRequest, required=true, desc="교실 생성 요청")
@Success(code=200, schema=dto.ClassroomResponse, desc="교실 생성 성공")
@Failure(code=400, schema=echo.HTTPError, desc="잘못된 요청")
@Router("/classrooms", "post")
Kenapa saya membuatnya?
Saat mengembangkan backend dengan Go di tim, pemeliharaan dokumentasi Swagger terasa sangat menyakitkan.
Saya menyambut feedback!
Saya penasaran apakah ini benar-benar akan membantu orang-orang yang mengembangkan API dengan Go.
Silakan coba, dan kalau ada hal yang kurang nyaman atau ide perbaikan, beri tahu saya!
Belum ada komentar.