นี่คือความคิดเห็นของฉันทำงานอย่างต่อเนื่องแม่แบบเริ่มต้นสำหรับการสร้างส่วนที่เหลือ API
เทมเพลตนี้เหมาะสำหรับคุณหาก คุณต้องการเริ่มต้นกับการเข้ารหัสต้องการโครงสร้างโครงการที่คิดออกมาแล้วซึ่งค่อนข้างง่ายและรวดเร็วในการเรียนรู้และทำงานในโครงการขนาดเล็กและใหญ่กว่าได้ดี
app -> App and related files
├─> src -> App source
│ ├─> Web -> Entry point for API - runnable project
│ │ ├─> Controllers -> API endpoints
│ │ ├─> Extensions -> Extension methods
│ │ ├─> Interfaces -> Web project's interfaces
│ │ ├─> Mappers -> Model mappers
│ │ ├─> Middlewares -> Middlewares (e.g. global error handling)
│ │ |─> Models -> Models in and out of API
│ │ ├─> Settings -> Options pattern for App (e.g. connection strings)
│ │ ├─> Validators -> Model validation rules
│ │ ├── Program.cs -> START
│ │ └── Startup.cs -> START
│ ├─> Core -> Holds business logic
│ │ ├─> Dtos -> Data-transfer-object (used for business logic)
│ │ ├─> Entities -> Entity Framework entities for database
│ │ ├─> Interfaces -> Core project's interfaces
│ │ ├─> Mappers -> Dto and Entity mappers
│ │ ├─> Services -> Business logic services
│ └─> Infrastructure -> Data access and external services
│ ├─> Database -> Database access
│ │ ├─> Configurations -> Entity Framework table configurations
│ │ ├─> Migrations -> Entity Framework autogenerated migrations
│ │ ├─> Repositories -> Repository pattern
│ │ ├── AppDbContext.cs -> Base context
│ │ ├── AppSeed.cs -> Database seeding
│ │ └── EfRepository.cs -> Base repository
│ └─> ExternalServices -> Services that access external services (e.g. ext. email service)
└─> tests -> App tests
├── FunctionalTests -> Endpoint tests etc.
│ ├─> Tests -> All tests
│ └─> Utils -> Utility functions (e.g. test database setup)
├── IntegrationTests -> Database tests etc.
│ ├─> Tests -> All tests
│ ├─> Utils -> Utilities functions (e.g. test database setup)
├── UnitTests -> Application logic tests etc.
│ ├─> Tests -> All tests
│ ├─> Utils -> Utility functions
└── Shared -> Model builders and other shared functions for tests
dotnet tool install --global dotnet-ef
dotnet ef database update -c ApplicationDbContext -p . /src/Infrastructure/Infrastructure.csproj -s . /src/Web/Web.csprojMyWebAPITemplate.slnF5 หรือ Debug/Start Debugging dotnet run -p . /src/Web/เมื่อคุณต้องการสร้างการโยกย้ายใหม่ (เมื่อคุณเปลี่ยนสคีมาฐานข้อมูล) จากนั้นเรียกใช้คำสั่งนี้เพื่อบอกเฟรมเวิร์กเอนทิตีเพื่อจัดการการเปลี่ยนแปลงสคีมาที่จำเป็นสำหรับฐานข้อมูล
dotnet ef migrations add NewMigrationNameHere --context ApplicationDbContext -p . /src/Infrastructure/Infrastructure.csproj -s . /src/Web/Web.csproj -o Database /Migrations โครงการนี้เริ่มต้นเป็นวิธีการของฉันในการจัดการกับการไหลของข้อมูลของทุกสิ่งที่ต้องทำเมื่อสร้าง APIs ด้วยลักษณะเสาหินเดี่ยว มีหลายสิ่งที่ต้องจดจำและมีตัวเลือกมากมายให้เลือก ดังนั้นฉันจึงสร้างเทมเพลตนี้เพื่อตัวฉันเองเพื่อจัดเก็บการปฏิบัติทั้งหมดที่ฉันได้พบในทางปฏิบัติและฉันหวังว่าเทมเพลตนี้อาจช่วยให้คนอื่นเรียนรู้สิ่งหนึ่งหรือสองอย่าง
ในเทมเพลตนี้ฉันได้รวบรวมความรู้เกี่ยวกับการสร้าง API ในรูปแบบการปฏิบัติ การตั้งค่าทางสถาปัตยกรรมการเลือกห้องสมุดและตัวเลือกอื่น ๆ นั้นขึ้นอยู่กับแนวทางปฏิบัติที่ดีที่สุดความนิยมและการตั้งค่าความคิดเห็นของฉันเอง จุดประสงค์ของเทมเพลตนี้คือการให้ตัวอย่างพื้นฐานที่ดีเกี่ยวกับวิธีการสร้าง REST APIs ด้วย ASP.NET ที่ปรับขนาดได้ง่ายต่อการใช้งานง่ายและมีการกำหนดค่าที่จำเป็นและสารพัดอื่น ๆ เทมเพลตนี้ได้รับแรงบันดาลใจจากแอปพลิเคชันอ้างอิง Microsoft EshoponWeb และอื่น ๆ อีกมากมาย
โครงการนี้ได้รับใบอนุญาต MIT - ดังนั้นอย่าลังเลที่จะใช้งานต่อไปที่คุณชอบ คำแนะนำและความช่วยเหลือได้รับการต้อนรับ -