นี่เป็นโปรเจ็กต์ ASP.NET Core ที่เรียบง่ายและได้รับการกำหนดค่าไว้ล่วงหน้า ซึ่งตั้งใจจะนำมาใช้และมีเป้าหมายเพื่อให้คุณเป็นฝ่ายเริ่มต้นในการสร้าง API ที่เงียบสงบ โดยอิงตามสถาปัตยกรรมสามระดับ
เพื่อแสดงฟังก์ชันการทำงานบางอย่าง โปรเจ็กต์นี้มาพร้อมกับการใช้งานแอปพลิเคชันการจัดการโปรเจ็กต์ที่เรียกว่า Plantagoo ที่เรียบง่ายและสมมติขึ้นมา
โดยส่วนตัวแล้วฉันได้สร้างโครงการ ASP.NET Core API ซ้ำแล้วซ้ำเล่าตั้งแต่เริ่มต้นในช่วงสองสามเดือนที่ผ่านมา แม้ว่าเทคโนโลยีจะเปลี่ยนแปลงและปรับปรุงอย่างรวดเร็ว แต่ฉันรู้สึกว่าจำเป็นต้องสร้างและเผยแพร่โครงการนี้เพื่อให้สามารถแบ่งปัน อ้างอิง และสร้างต่อยอดได้ในอนาคต
สถาปัตยกรรมสามชั้น โดยใช้คลาสไลบรารีต่อชั้น
บริการแบบอะซิงโครนัสที่ใช้ DI ส่งคืนออบเจ็กต์การตอบสนองทั่วไป
การรับรองความถูกต้องและการอนุญาตตาม JWT
การแฮชแบบ PBKDF2
การจัดการข้อผิดพลาดทั่วโลกที่ใช้มิดเดิลแวร์
จุดสิ้นสุด API ที่สงบ ส่งคืน DTO และรหัสสถานะ HTTP
การใช้งานการกรอง การเพจ และการเรียงลำดับสำหรับจุดสิ้นสุด API ซึ่งส่งคืนรายการของออบเจ็กต์
การใช้งานการกำหนดเวอร์ชันจุดสิ้นสุด API
การเข้าถึงข้อมูลตาม Entity Framework Core ผ่านเอนทิตี POCO
การทำแผนที่แบบวัตถุต่อวัตถุตาม AutoMapper และการเพิ่มประสิทธิภาพแบบสอบถามฐานข้อมูล
ความสามารถในการกำหนดค่าที่เน้นความปลอดภัยของสตริงการเชื่อมต่อฐานข้อมูลและพารามิเตอร์ JWT ผ่านไฟล์ "appsettings.json" ตามสภาพแวดล้อม ข้อมูลลับ และ/หรือตัวแปรสภาพแวดล้อม
การทดสอบการรวมตาม xUnit รวมถึงการตั้งค่า การเริ่ม และการแยกฐานข้อมูลเฉพาะ
หากต้องการให้โปรเจ็กต์นี้ทำงานได้ตามปกติ โปรดทำตามขั้นตอนเหล่านี้:
.NET Core 3.1+ SDK
IDE (ควรเป็น Visual Studio หรือ Visual Studio Code)
เซิร์ฟเวอร์ MySQL 8.0.20+
โคลนที่เก็บนี้
ที่ไดเร็กทอรีราก ให้กู้คืนแพ็กเกจที่จำเป็นโดยการรัน:
dotnet restore
เปิดไฟล์ appsettings.{environment}.json ภายในโปรเจ็กต์ Plantagoo.API เพื่อปรับแต่งสตริงการเชื่อมต่อต่อไปนี้ตามความต้องการของคุณ (ดูขั้นตอนที่ 7 สำหรับข้อมูลรับรอง):
server=localhost;Port=3306;database=apiSkeletonDb
เพื่อวัตถุประสงค์ในการพัฒนา ให้เปิดใช้งานที่เก็บข้อมูลลับโดยการรัน (หากคุณคุ้นเคยกับการทำงานกับตัวแปรสภาพแวดล้อม ให้กรอไปข้างหน้าไปยังขั้นตอนที่ 7):
dotnet user-secrets init
หากคุณใช้ Windows ให้ไปที่และเปิดไฟล์ %APPDATA%MicrosoftUserSecrets<user_secrets_id>secrets.json
หากคุณใช้ Linux/macOS ให้ไปที่และเปิดไฟล์ ~/.microsoft/usersecrets/<user_secrets_id>/secrets.json
ภายในไฟล์ Secrets.json นี้ ให้เพิ่มบรรทัดต่อไปนี้เพื่อตั้งค่าพารามิเตอร์ JWT ของคุณและเพื่อขยายสตริงการเชื่อมต่อฐานข้อมูลของคุณโดยเพิ่มชื่อผู้ใช้และรหัสผ่าน:
"TokenSettings:Secret": "…", "TokenSettings:AccessExpirationInMinutes": "…", "DB:Username": "…", "DB:Password": "…"
สำหรับ Code-First Approach ในการสร้างฐานข้อมูล ให้รันคำสั่งต่อไปนี้ (ตรวจสอบให้แน่ใจว่าไดเร็กทอรีปัจจุบันของคุณคือ Plantagoo.Data ):
dotnet ef migrations add InitialCreate
ตามด้วย:
dotnet ef database update
ถัดไป สร้างโซลูชันโดยการรัน:
dotnet build
เมื่อเสร็จแล้วให้เปิดแอปพลิเคชันโดยเรียกใช้:
dotnet run
เปิด https://localhost:5001/swagger/index.html ในเบราว์เซอร์ของคุณเพื่อดูเอกสาร Swagger ของ API ของคุณ
.NET Core 3.1
ASP.NET Core 3.1
เอนทิตีเฟรมเวิร์กคอร์ 3.1
การทำแผนที่อัตโนมัติ
หัวเข็มขัด
xหน่วย