Ini adalah pekerjaan saya, terus -menerus bekerja, templat starter, untuk membangun API istirahat.
Template ini untuk Anda jika Anda hanya ingin memulai dengan pengkodean, menginginkan struktur proyek yang sudah dipikirkan, itu cukup sederhana dan cepat untuk dipelajari, dan bekerja pada proyek yang lebih kecil dan lebih besar dengan baik.
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 atau Debug/Start Debugging dotnet run -p . /src/Web/Ketika Anda perlu membuat migrasi baru (ketika Anda mengubah skema database), kemudian jalankan perintah ini untuk memberi tahu kerangka kerja entitas untuk menangani perubahan skema yang diperlukan untuk database.
dotnet ef migrations add NewMigrationNameHere --context ApplicationDbContext -p . /src/Infrastructure/Infrastructure.csproj -s . /src/Web/Web.csproj -o Database /Migrations Proyek ini dimulai sebagai cara saya untuk menangani aliran informasi dari segala sesuatu yang perlu dilakukan saat membangun API dengan cara monolitik tunggal. Ada begitu banyak hal yang perlu diingat dan ada banyak pilihan yang harus dibuat. Oleh karena itu, saya membuat templat ini, untuk diri saya sendiri, untuk menyimpan semua praktik yang saya temukan praktis dan saya berharap template ini juga dapat membantu orang lain belajar satu atau dua hal.
Dalam templat ini, saya telah mengumpulkan pengetahuan saya tentang bangunan API dalam format praktis. Preferensi arsitektur, pilihan perpustakaan, dan pilihan lain dibuat, berdasarkan praktik terbaik, popularitas dan preferensi saya sendiri. Tujuan dari template ini, adalah untuk memberikan contoh dasar yang baik tentang cara membangun API REST dengan ASP.NET yang dapat diskalakan, mudah diangkat dan berisi konfigurasi yang diperlukan dan barang lainnya. Template ini terinspirasi oleh aplikasi referensi Microsoft EshoponWeb dan banyak lainnya.
Proyek ini berlisensi MIT - jadi jangan ragu untuk menggunakannya. Saran dan bantuan disambut. ?