هنگامی که نوبت به تأیید اعتبار داده های ورودی می رسد ، کد دیگ بخار با بسیاری از شرطی ها درست در بالای سر من قرار می گیرد. با یادآوری تجربه من با Ruby On Rails ، فکر می کردم که آیا امکان استفاده از اعتبار سنجی در Golang ، به روشی مشابه اعتبار سنجی Active Record وجود دارد؟ در این مقاله ، نحوه دستیابی به آن را خواهیم دید.
مدل دامنه
بیایید این دامنه ساده را فرض کنیم:
“مردم‘جدول دارای یکی به خیلی ها رابطه با ‘آدرس ها‘ جدول.
محدودیت های اعتبار سنجی برای جدول “افراد”:
- “نام” و “ایمیل” فیلدهای الزامی هستند و داشتن حداقل یک آدرس اجباری است.
- ‘ایمیل’ باید یک ایمیل معتبر باشد ، برای افراد خصوصی ‘cpf’ لازم است.
- در صورت تحقق ، “cpf” باید معتبر باشد ؛ برای اشخاص حقوقی ، “cnpj” لازم است.
- در صورت تحقق ، “cnpj” باید معتبر باشد.
- ممکن نیست شخصی با cpf و cnpj تکمیل شود.
محدودیت های اعتبارسنجی برای جدول “آدرس ها”:
- زمینه های “خیابان” ، “شهر” و “تلفن” مورد نیاز است.
- “تلفن” باید یک شماره معتبر باشد.
راه ریلی
ایجاد پروژه:
tiago:~/develop/ruby/rails$ rails new validation-example --api
ایجاد مدل “شخص”:
tiago:~/develop/ruby/rails/validation-example$ rails g model person name:string email:string cpf:string cnpj:string
ایجاد مدل “آدرس”:
tiago:~/develop/ruby/rails/validation-example$...