เรียนรู้ Golang โดยการสร้างแอปธนาคาร fintech - บทที่ 3: การลงทะเบียนผู้ใช้

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

บทความนี้เผยแพร่ครั้งแรกที่:
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 โปรเจกต์ของเรากำลังจะใหญ่ขึ้น ดังนั้นเราจึงจำเป็นต้องปรับโครงสร้างใหม่>

ดูสิ่งนี้ด้วย: