บทความนี้เผยแพร่ครั้งแรกที่:
https://www.blog.duomly.com/golang-course-with-building-a-fintech-banking-app-lesson-3-user-registration
บทนำ
ในบทเรียนที่สามของหลักสูตร Golang ฉันจะแสดงวิธีสร้างการลงทะเบียนผู้ใช้ใน Golang
ในบทเรียนก่อนหน้าของหลักสูตร Golang เราได้เรียนรู้วิธีสร้าง REST API ใน Golang และวิธีสร้างการเข้าสู่ระบบของผู้ใช้
URL ที่นี่:
หลักสูตร Golang กับการสร้างแอปธนาคาร fintech - บทที่ 2: การเข้าสู่ระบบและ REST APIและในหลักสูตรเชิงมุม แอนนาเพื่อนของฉันได้แสดงวิธีสร้างการเข้าสู่ระบบในมุม 9
URL ที่นี่:
หลักสูตรเชิงมุมพร้อมการสร้างแอปพลิเคชันธนาคารด้วย Tailwind CSS – บทที่ 2: แบบฟอร์มเข้าสู่ระบบดังนั้นในบทเรียนวันนี้ เราสามารถเข้าสู่ขั้นตอนต่อไปได้
นั่นคือการลงทะเบียนผู้ใช้ แต่ไม่เพียงเท่านั้น
โครงการของเรากำลังขยายใหญ่ขึ้น ดังนั้นเราจึงจำเป็นต้องปรับโครงสร้างใหม่เช่นกัน
และเราจำเป็นต้องตรวจสอบให้แน่ใจว่าข้อมูลที่เราส่งผ่าน API นั้นถูกต้อง ดังนั้นเราจะต้องสร้างคุณลักษณะการตรวจสอบความถูกต้อง
เริ่มกันเลย!
และถ้าคุณชอบวิดีโอ นี่คือเวอร์ชัน youtube:
รีแฟคเตอร์เตรียมโทเค็น
ขั้นตอนแรกที่เราต้องทำคือการปรับโครงสร้างใหม่
ในการย้ายครั้งแรก เราจะตัดตรรกะทั้งหมดที่เกี่ยวข้องกับโทเค็นและสร้างฟังก์ชันใหม่สำหรับสิ่งนั้น
ใช้ตรรกะที่เกี่ยวข้องกับโทเค็นจากฟังก์ชันเข้าสู่ระบบในไฟล์ users/users.go
และวางไว้ในฟังก์ชั่นใหม่ชื่อ 'prepareToken' ในไฟล์เดียวกัน
|_+_|รีแฟคเตอร์เตรียมการตอบสนอง
ขั้นตอนต่อไปคล้ายกับขั้นตอนก่อนหน้า
แต่ในขั้นตอนที่สอง เราควรนำตรรกะทั้งหมดที่เกี่ยวข้องกับการตอบสนองจากการเข้าสู่ระบบ
พลิกไพ่ซูเปอร์มาริโอ 3 ใบ
สำหรับตรรกะนั้น เราควรสร้างฟังก์ชันชื่อ 'prepareResponse'
ให้เราย้ายการเข้าสู่ระบบทั้งหมดไปที่ฟังก์ชัน 'prepareResponse'
|_+_|เข้าสู่ระบบ Refactor
ข้อมูลเข้าสู่ระบบของเราถูกล้างแล้ว แต่มีตัวแปรที่ขาดหายไป
เราควรแก้ไขและกำหนดฟังก์ชั่นที่เราสร้างไว้ก่อนหน้านี้ให้กับตัวแปรชื่อ 'response'
ถัดไป' เราต้องส่งตัวแปร 'ผู้ใช้' และ 'บัญชี' เป็นพารามิเตอร์ของฟังก์ชันนั้น
ลองมาดูตัวอย่างด้านล่างนี้
|_+_|สร้างฟังก์ชันลงทะเบียน
เยี่ยมมาก การปรับโครงสร้างใหม่เสร็จสิ้นแล้ว!
ตอนนี้เราสามารถเข้าสู่ฟังก์ชั่นการลงทะเบียน
ในไฟล์เดียวกัน เราควรสร้างฟังก์ชั่นชื่อ 'ลงทะเบียน'
ฟังก์ชันนั้นควรใช้ชื่อผู้ใช้ อีเมล และรหัสผ่านเป็นพารามิเตอร์ โดยทั้งหมดเป็นประเภท 'string'
ฟังก์ชัน 'ลงทะเบียน' ควรส่งคืนการตอบสนองประเภทเดียวกับฟังก์ชัน 'เข้าสู่ระบบ'
|_+_|สร้างส่วนต่อประสานการตรวจสอบ
ก่อนที่เราจะดำเนินการต่อด้วยตรรกะสำหรับการลงทะเบียน เราควรสร้างการตรวจสอบ
เพื่อให้แน่ใจว่าตัวแปรทั้งหมดที่เราส่งไปเป็นตัวแปรที่เราวางแผนไว้
ขั้นตอนแรกของการตรวจสอบคือการสร้างอินเทอร์เฟซสำหรับสิ่งนั้น
ไปที่ interfaces/interfaces.go กัน
ต่อไป มาสร้าง struct ชื่อ 'Validation' โดยมี 2 props
อันแรกจะเป็น 'Value' และอันที่สอง 'Valid' เป็นสตริงทั้งคู่
|_+_|สร้างตรรกะการตรวจสอบ
ตอนนี้เราสามารถสร้างตรรกะบางอย่างสำหรับการตรวจสอบ
ขั้นตอนแรกที่เราควรทำคือสร้าง Regular Expression สองรายการที่จะตรวจสอบว่าตัวแปรของเราถูกต้องหรือไม่
อันแรกควรตรวจสอบว่าเราไม่ได้ผ่านอะไรนอกจากตัวอักษรหรือตัวเลข
และอันที่สองควรตรวจสอบว่าตัวแปรของเราเหมาะกับรูปแบบอีเมลหรือไม่
ต่อไป เราต้องสร้างคำสั่ง switch-case และตรวจสอบว่าชื่อผู้ใช้และอีเมลผ่าน regexp หรือไม่
ขั้นตอนสุดท้ายคือการตรวจสอบว่ารหัสผ่านของเรามีความยาวอย่างน้อย 5 ตัวอักษรหรือไม่
|_+_|เพิ่มการตรวจสอบเพื่อเข้าสู่ระบบ
เมื่อเราตรวจสอบเสร็จแล้ว เราสามารถเพิ่มตรรกะนั้นในการเข้าสู่ระบบได้
ภายในฟังก์ชัน 'Valid' เราควรส่งตัวแปรทั้งหมดที่เราต้องการตรวจสอบ
อย่าลืมเกี่ยวกับชื่อของคีย์ 'ถูกต้อง'
เราควรเพิ่มคำสั่ง if-else และใส่ตรรกะของ 'เข้าสู่ระบบ' เมื่อ if-else ผ่าน
ถ้าไม่ เราควรส่งคืนข้อความที่มีสถานะ 'ค่าไม่ถูกต้อง'.
|_+_|เพิ่มการตรวจสอบเพื่อลงทะเบียน
ขั้นตอนนี้คล้ายกับขั้นตอนก่อนหน้ามาก
หากทุกอย่างเรียบร้อยดี เราสามารถเริ่มตรรกะการลงทะเบียนได้ หากไม่มี ให้ส่งคืนข้อความเดียวกับใน 'เข้าสู่ระบบ'
ความแตกต่างเล็กน้อยอย่างหนึ่งคือการเพิ่มตัวแปร 'อีเมล' อีกหนึ่งตัวแปร
|_+_|การเชื่อมต่อฐานข้อมูลสำหรับการลงทะเบียน
ตอนนี้เราสามารถเข้าสู่การเชื่อมต่อฐานข้อมูล
เราทำมาแล้วสองสามครั้งก่อนหน้านี้ ดังนั้นคุณเพียงแค่คัดลอก/วางรหัสนี้
|_+_|สร้างผู้ใช้และบัญชี
เราสร้างคุณลักษณะนี้เช่นกัน
คุณสามารถดูที่การโยกย้าย/การโยกย้ายไปที่ createAccounts
คุณสามารถคัดลอกรหัสนั้นหรือเขียนใหม่ตั้งแต่ต้น
หากคุณคัดลอกโค้ด คุณจะต้องเปลี่ยนค่าบางอย่าง
ลองมาดูตัวอย่างด้านล่างนี้
|_+_|เตรียมการตอบสนองและโทเค็น
การตอบสนองและโทเค็นจะคล้ายกับตรรกะจาก 'เข้าสู่ระบบ'
คุณเพียงแค่ต้องเพิ่มฟังก์ชัน 'prepareResponse' ให้กับตัวแปรชื่อ 'response
ถัดไป 'response' ควรอยู่ท้าย if ในฟังก์ชัน 'register'
|_+_|สร้างอินเทอร์เฟซการลงทะเบียน
ยินดีด้วย!
วัสดุหนังสือนิทาน-ui
ตรรกะสำหรับฟังก์ชัน 'ลงทะเบียน' พร้อมแล้ว ตอนนี้คุณสามารถเข้าสู่ตรรกะสำหรับ API
เราต้องย้ายไปที่ไฟล์ 'api/api.go'
ต่อไป เราควรสร้างอินเทอร์เฟซชื่อ 'ลงทะเบียน' และกำหนด 'ชื่อผู้ใช้' 'อีเมล' และ 'รหัสผ่าน' ที่นั่น
เราควรกำหนดอุปกรณ์ประกอบฉากทั้งหมดเป็น 'สตริง'
|_+_|สร้างฟังก์ชันการลงทะเบียนใน API
ในขั้นตอนต่อไปของการสร้าง API เราควรสร้างฟังก์ชันชื่อ 'register'
ฟังก์ชันนั้นควรใช้พารามิเตอร์เดียวกันกับฟังก์ชัน 'ลอจิก'
คุณสามารถคัดลอกฟังก์ชันทั้งหมดที่ชื่อว่า 'ลอจิก' และเปลี่ยนตำแหน่งเพียงไม่กี่แห่ง
จะมีเนื้อความอ่านเหมือนกัน
ถัดไป ฟังก์ชันควรเรียก 'ลงทะเบียน' จากผู้ใช้
ในขั้นตอนสุดท้าย ตรรกะ 'ลงทะเบียน' ของเราควรเตรียมการตอบสนองและจัดการกับข้อผิดพลาด
ลองมาดูตัวอย่างด้านล่างนี้
|_+_|สร้างปลายทาง API
ยอดเยี่ยม!
ตอนนี้เป็นขั้นตอนสุดท้าย
ตอนนี้เราต้องสร้างโค้ดหนึ่งบรรทัดเพื่อจัดการกับปลายทาง '/register'
เพิ่มบรรทัดด้วย 'HandleFunc' สำหรับเส้นทางนั้นในฟังก์ชันชื่อ 'StartApi'
คุณสามารถดูวิธีที่เราสร้างขึ้นด้วย '/ เข้าสู่ระบบ'
|_+_|บทสรุป
ยินดีด้วย โครงการของคุณมีการลงทะเบียนผู้ใช้และการตรวจสอบความถูกต้องแล้ว!
คุณสามารถเริ่มเชื่อมต่อกับส่วนหน้าได้จากหลักสูตร:
เรียนรู้ Angular 9 ด้วย Tailwind CSS โดยสร้างแอป Fintech Banking
หากคุณต้องการเปรียบเทียบโค้ดกับสิ่งที่ฉันทำ นี่คือ URL:
https://github.com/Duomly/go-bank-backend/tree/Golang-course-Lesson-3
สาขาของบทเรียนนี้มีชื่อว่า 'Golang-course-Lesson-3'
แล้วพบกันในบทเรียนต่อไป เมื่อเราจะเน้นไปที่โปรไฟล์ผู้ใช้และเริ่มสร้างการโอนเงิน
ขอบคุณที่อ่าน,
Radek จาก Duomly
www.blog.duomly.com
เรียนรู้ Golang โดยการสร้างแอปธนาคาร fintech - บทที่ 3: การลงทะเบียนผู้ใช้
ในบทเรียนที่สามของหลักสูตร Golang ฉันจะแสดงวิธีสร้างการลงทะเบียนผู้ใช้ใน Golang โปรเจกต์ของเรากำลังจะใหญ่ขึ้น ดังนั้นเราจึงจำเป็นต้องปรับโครงสร้างใหม่>