नमस्ते,

क्या आपने Go में API डेवलप करते समय Swagger टिप्पणियों की वजह से कभी तनाव झेला है?

मैं हर बार कुछ इस तरह जूझता था:

  • "// @Param का चौथा argument required था या description...?"
  • "dto.UserRequest में typo किया, लेकिन पता runtime पर जाकर चला"
  • "इस टिप्पणी का मतलब क्या है, हर बार खोजकर देखना"

इसीलिए मैंने Swaggo नाम का एक VS Code extension बनाया।

यह कैसे काम करता है?

पुराना तरीका:

// @Param id query string true "사용자 ID"  
// @Success 200 {object} dto.UserResponse "성공"  

क्रम याद रखना पड़ता है, और एक नज़र में समझना भी आसान नहीं होता।

Swaggo तरीका:

@Param(name="id", in="query", type=string, required=true, desc="사용자 ID")  
@Success(code=200, schema=dto.UserResponse, desc="성공")  

जैसे ही आप लिखते हैं, यह अपने-आप standard Swagger टिप्पणियों में बदल जाता है।
एडिटर में यह बेहतर पठनीय annotation रूप में दिखता है, और वास्तविक फ़ाइल में standard टिप्पणियों के रूप में सेव होता है।

मुख्य सुविधाएँ

स्पष्ट parameter नाम - क्रम याद रखने की ज़रूरत नहीं
IDE auto-complete - annotation नाम, key, और type तक auto-complete
type inference - Go struct की अपने-आप पहचान
real-time conversion - लिखते ही Swagger टिप्पणी में रूपांतरण
hover preview - रूपांतरण का परिणाम तुरंत देखें
snippet - GET/POST template उपलब्ध

वास्तविक उपयोग का उदाहरण

@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")  

मैंने इसे क्यों बनाया?

टीम में Go से backend डेवलप करते हुए Swagger documentation का maintenance बहुत ही पीड़ादायक था।

फ़ीडबैक का स्वागत है!

मैं जानना चाहता हूँ कि क्या यह Go से API डेवलप करने वाले लोगों के लिए वास्तव में उपयोगी होगा।
इसे इस्तेमाल करके देखें, और अगर कोई असुविधा या सुधार का विचार हो तो बताइए!

GitHub: https://github.com/NARUBROWN/swaggo.git

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.