TGViewer
کداکسپلور | CodeExplore کداکسپلور | CodeExplore @codeexplore · 9.2K subscribers
Post #3775 1.77K
کداکسپلور | CodeExplore 🚀 ۳ ابزار کاربردی برای کار با API و JSON 🔸 ‏Postman ابزاری قدرتمند برای تست و مدیریت APIهای REST و GraphQL با محیط گرافیکی حرفه‌ای. ✅ پشتیبانی از انواع متد، مدیریت Token و ساخت کالکشن تست. 🔗 postman.com 🔸 ‏Insomnia جایگزینی سبک، سریع و ساده برای Postman…
🚀 تفاوت Anonymous Struct و Named Struct در Go + کاربرد واقعی در ساخت API

در زبان Go، دو نوع ساختار (struct) پرکاربرد داریم که بسته به نیاز، استفاده از یکی نسبت به دیگری بهتره. اینجا با یه مثال واقعی از دنیای API برات توضیح می‌دیم که چرا و کجا از هر کدوم استفاده کنیم:

🔸 ساختار نام‌دار (Named Struct)
ساختاری با اسم مشخص که می‌تونه چندین‌بار در بخش‌های مختلف پروژه استفاده بشه. برای مدل‌سازی دیتاهایی مثل کاربر، محصول یا درخواست لاگین خیلی مفیده.

✅ مزایا:
• قابل استفاده مجدد
• خوانایی بالا
• سازماندهی بهتر کد

type LoginRequest struct {
Username string `json:"username"`
Password string `json:"password"`
}

func LoginHandler(c *gin.Context) {
var req LoginRequest
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(400, gin.H{"error": "invalid request"})
return
}
// استفاده از req.Username و req.Password
}

🔸 ساختار بی‌نام (Anonymous Struct)
وقتی فقط یک‌بار قراره از یه ساختار ساده استفاده کنی و نمی‌خوای struct جداگانه تعریف کنی، این روش خیلی سریع و کارآمده. مخصوصاً توی پارس کردن سریع کوئری‌ها یا تست‌های سبک.

✅ مزایا:
• کد سریع‌تر و تمیزتر
• بدون نیاز به تعریف نوع جدا
• مناسب برای موارد موقتی یا کوچک
func SearchHandler(c *gin.Context) {
var query struct {
Q string form:"q"
Page int form:"page"
}

if err := c.ShouldBindQuery(&query); err != nil {
c.JSON(400, gin.H{"error": "bad query"})
return
}

// استفاده از query.Q و query.Page
}
🎯 جمع‌بندی:
اگر ساختار رو در چند جای پروژه استفاده می‌کنی ➡️ ساختار نام‌دار (Named Struct)
اگر فقط برای یک‌بار یا در یک فانکشن خاص استفاده داری ➡️ ساختار بی‌نام (Anonymous Struct)

#GoLang #Struct #Gin #API #Backend #برنامه‌نویسی #گو
☕️Telegram | Website | Discord
  • ❤‍🔥 6
  • 🔥 3
  • 💔 2
More from @codeexplore
  1. Oct 8, 2026🙂😂 #fun ☕️ Telegram | Website | Discord
  2. Oct 8, 2026برای اولین بار در تاریخ CVE ها یک عدد 6 رقمی گرفتند! و این عمق فاجعه آسیب پذیری های پیدا ش…
  3. Oct 7, 2026‏Graphify یه ابزار اوپن سورسه که باهاش میتونید ببینید بخشای مختلف پروژه چطور به هم وصل…
  4. Oct 5, 2026😂😮 #fun ☕️ Telegram | Website | Discord
  5. Oct 5, 2026‏Vengeance UI مجموعه‌ای از Component های اوپن سورس انیمیشنی پر استفاده رو با افکتای مخ…
  6. Oct 4, 2026پشت هر شخصیت برنامه‌نویس، سال ها یادگیری، تلاش و آزمون‌وخطا وجود داره. ☕️ Telegram | Websi…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →