وب‌سرویس مجید

پروژه copier

jinzhu/copier

کاربرد:

این کتابخانه به تو کمک می‌کنه تا به راحتی مقادیر از یک ساختار (struct) به ساختار دیگه در زبان Go کپی کنی، بدون اینکه دستی هر فیلد رو نگاشت کنی. همچنین می‌تونه بین sliceها، mapها و حتی تبدیل نوع‌ها هم کار کنه.

در چه شرایطی بهتره استفاده شود؟

وقتی داری لایه‌های مختلفی مثل model، DTO یا request/response در اپلیکیشن Go داری و می‌خوای داده‌ها رو بینشون منتقل کنی، این ابزار خیلی مفیده. همچنین وقتی نام فیلدها یکی نیستن ولی نوع یا معنی نزدیکی دارن، copier می‌تونه خودش هوشمندانه نگاشت کنه.

چند مثال از موارد استفاده

تبدیل یک UserModel به UserResponse برای ارسال به کلاینت

کپی داده از Request به Entity قبل از ذخیره در دیتابیس

نگاشت خودکار فیلدهای مشابه با نام‌های متفاوت (مثل FullName و full_name)

کپی لیستی از اشیا از یک نوع به نوع دیگه بدون حلقه دستی

  • ##GoLang
  • ##StructCopy
  • ##DataMapping
  • ##BackendDev
  • ##GolangTools
  • ##Copier
  • ##DTO
  • ##API
  • ##CodeSimplification