Code First .NET Wep App and API with Login (โค้ดนิดเดียว)
ฝัง
- เผยแพร่เมื่อ 7 ก.ย. 2024
- ตัวอย่างการสร้าง Web Application พร้อม API ในตัว มีระบบ Login ต่อฐานข้อมูลเรียบร้อย ไม่ต้องจัดการฐานข้อมูล ให้โค้ดสร้างออกมา และเขียนโค้ดน้อยมากใช้การสร้างแบบอัตโนมัติเป็นส่วนใหญ่
เหมาะสำหรับคนที่หัดเขียนเวปและ API ด้วย .NET ที่พอจะมีความเรื่องเวปและ API นิดๆหน่อย ต้องการเรียนอย่างรวดเร็ว ไม่ต้องจำเยอะ สามารถศึกษารูปแบบการเขียนที่ดีได้จากโค้ดที่สร้างขึ้นมา ในวีดีโอ API ยังไม่ได้ใช้ JWT Authentication ไว้จะทำวีดีโอให้ในภายหลัง
[หัวข้อในวีดีโอ]
1:55 สร้าโปรเจ็ก ASP.NET Core Web APP (MVC)
9:44 Scaffolded หน้า Account/Register ออกมาแก้ไข
13:40 Identity Model Customization แก้ไขข้อกำหนดรหัสผ่าน
19:52 ทำ Authorization ให้หน้าเวป
20:57 เพิ่มฟังก์ชันการ Search ทำง่ายๆโค้ดนิดหน่อย
27:36 สร้าง Web API โดยการก็อปปี้จาก Controller เดิมเลย
37:03 ทดสอบ Web API ด้วย Postman
43:40 ทำการจัดการ Web API ที่ต้อง Authorize (Return 401)
วีดีโอนี้ยังขาดการ Authentication ผ่าน API ไว้โอกาสหน้าจะทำวีดีโอเกี่ยวกับ Web API ให้ครับ
[จุดที่ควรดู]
ให้ดูโครงสร้างตารางหลัง Update-Database (ในวีดีโอไม่ได้เอาให้ดู)
หน้า Index Create Edit Delete แสดงวิธีการใช้ฐานข้อมูลด้วย Entity Framework
หน้า scaffold ของ identity แสดงวิธีการใช้ identity ในขั้นตอนต่างๆ
การแก้ให้ลงทะเบียนผู้ใช้โดยไม่ต้องใช้อีเมลล์
ดูวิธีการแสดงส่ง Status Code แบบต่างๆจาก API
[ซอฟต์แวร์ที่ใช้]
- Visual Studio 2019
- .NET 5,
- SQL Server + Entity Framework
- ASP.Net Identity (คนละตัวกับ Microsoft identity platform นะ)
[ข้อมูลอ่านเพิ่มเติม]
Entity Framework Core
www.learnentit...
การใช้งาน scaffold สำหรับ Identity และเอกสารที่จำเป็น
docs.microsoft...
ข้อดีในการใช้ Visual Studio 2019 คือมันจะติดตั้งแพ็กเกจที่จำเป็นต่างๆให้อัตโนมัติ ถ้าเข้าใจหลักการแล้วสามารถปรับใช้กับ Visual Studio Code หรือฐานข้อมูลตัวอื่นได้ไม่ยากนัก
=== สำหรับคนไม่ได้ใช้ Visual Studio 2019 ===
[สร้างโปรเจ็กและเรียกใช้งาน]
dotnet tool install --global dotnet-ef
dotnet new mvc -n "SampleWebApp" -lang "C#" -au individual
cd SampleWebApp
code .
dotnet build
dotnet run
[ติตตั้งแพ็กเกจที่จำเป็น]
dotnet tool install -g dotnet-aspnet-codegenerator
dotnet add package Microsoft.VisualStudio.web.CodeGeneration.Design
dotnet add package Microsoft.Entity.FrameWorkCore.Design
dotnet add package Microsoft.AspNetCore.Identity.EntityFrameworkCore
dotnet add package Microsoft.Entity.FrameWorkCore.SqlServer
dotnet add package Microsoft.Entity.FrameWorkCore.Tools
[ใช้งาน Identity]
dotnet aspnet-codegenerator identity -h
dotnet aspnet-codegenerator identity --useDefaultUI
[จัดการฐานข้อมูล]
dotnet ef migrations add "Initial Migration"
dotnet ef database update
ขอบคุณครับ
คลิปนี้เป็นการสร้างแบบ Local API ใช่ไหมคะ พอดีพึ่งหัดเขียนโค้ดค่ะ
ไม่แน่ใจว่า Local API ในความหมายของคุณคืออะไรนะครับ ในตัวอย่างทำสองอย่าง
- MVC ใช้ Wizard ช่วยสร้างให้ได้หน้า UI (Razer page)และ API(Controller) ให้เรียกใช้ในโปรแกรมแบบง่ายๆ
- Web API ก็อปจาก Controller มาแก้
ตามความเห็นของผมเองไม่เหมาะกับการหัดเขียนเท่าไหร่เพราะมันสร้างโน่นนี้ให้อัตโนมัติทำให้ไม่เข้าใจเบื้อหลังว่าทำงานอย่างไร เจอปัญหาก็จะแก้ไม่ได้ แต่ก็ขึ้นงานได้เร็ว ลองดูใน Playlist .NET แล้วดูพวก Minimal API จะเห็นที่มาที่ไปชัดเจนกว่า ถ้าหัดเขียนโปรแกรมแล้วไม่จำเป็นต้องเป็น .NET ลองดุ Playlist หัวข้อ Svelte ก็จะง่ายเป็นเร็วทำจนสามารถขึ้นงานทั้งระบบ แล้วค่อยกลับมาหัด .NET ก็ได้
ทำไมมันขึ้นเออเร่อไม่มีเลอ
there eas an eror running the selected code geneator start index cannot be larger than length of string parameter start index
มันขึ้นเออเร่อแบบนี้ต้องทำยังไงคะอ่านแล้วงงค่ะ
@@fast2965 หมายถึงตอน Scaffloded item หรือเปล่าครับ มันอาจจะเป็นบักของรุ่น dotnet เดี๋ยวผมลองทำกับ version 6 ดู มีคนเจอปัญหาเดียวกันนี้แต่คนอื่นเขาทำแล้วไม่มีปัญหาครับ ตอนนี้อาจจะลองอัปเดต VS Code ดู แล้วลองทำอีกรอบ
docs.microsoft.com/en-us/answers/questions/814987/aspnet-mvc-6-cannot-use-new-scaffloded-item.html