Ini adalah proyek ASP.NET Core yang sederhana dan telah dikonfigurasi sebelumnya, dimaksudkan untuk diadopsi dan bertujuan memberi Anda keunggulan dalam membangun API yang tenang, berdasarkan arsitektur tiga tingkat.
Untuk menampilkan beberapa fungsinya, proyek ini hadir dengan implementasi aplikasi manajemen proyek minimalis dan fiksi yang disebut Plantagoo.
Secara pribadi saya telah berulang kali membuat proyek ASP.NET Core API dari awal selama beberapa bulan terakhir. Meskipun teknologi diketahui berubah dan berkembang dengan cepat, saya merasa perlu untuk membuat dan mempublikasikan proyek ini agar dapat dibagikan, dijadikan referensi, dan dikembangkan di masa depan.
Arsitektur Tiga Tingkat, menggunakan Perpustakaan Kelas per tingkat
Layanan asinkron berbasis DI, mengembalikan objek respons umum
Otentikasi dan otorisasi berbasis JWT
Hashing berbasis PBKDF2
Penanganan kesalahan global berbasis middleware
Titik akhir API yang tenang, mengembalikan DTO dan kode status HTTP
Implementasi pemfilteran, paging & pengurutan untuk titik akhir API, yang mengembalikan daftar objek
Implementasi pembuatan versi titik akhir API
Akses data berbasis Entity Framework Core melalui entitas POCO
Pemetaan objek-ke-objek berbasis AutoMapper dan optimasi kueri basis data
Konfigurasi string koneksi database dan parameter JWT yang berfokus pada keamanan melalui file "appsettings.json" berbasis lingkungan, rahasia dan/atau variabel lingkungan
Pengujian integrasi berbasis xUnit, termasuk pengaturan, penyemaian, dan pembongkaran database khusus
Untuk menjalankan proyek ini sebagaimana adanya, silakan ikuti langkah-langkah berikut:
.NET Inti 3.1+ SDK
IDE (sebaiknya Visual Studio atau Visual Studio Code)
MySQL Server 8.0.20+
Kloning repositori ini
Di direktori root, pulihkan paket yang diperlukan dengan menjalankan:
dotnet restore
Buka file appsettings.{environment}.json
dalam proyek Plantagoo.API untuk menyesuaikan string koneksi berikut dengan kebutuhan Anda (lihat langkah 7 untuk kredensial):
server=localhost;Port=3306;database=apiSkeletonDb
Untuk tujuan pengembangan, aktifkan penyimpanan rahasia dengan menjalankan (Jika Anda terbiasa bekerja dengan variabel lingkungan, lanjutkan ke langkah 7):
dotnet user-secrets init
Jika Anda menggunakan Windows, buka dan buka file %APPDATA%MicrosoftUserSecrets<user_secrets_id>secrets.json
.
Jika Anda menggunakan Linux/macOS, buka dan buka file ~/.microsoft/usersecrets/<user_secrets_id>/secrets.json
.
Dalam file secret.json ini, tambahkan baris berikut untuk mengatur parameter JWT Anda dan untuk memperluas string koneksi database Anda dengan menambahkan nama pengguna dan kata sandi:
"TokenSettings:Secret": "…", "TokenSettings:AccessExpirationInMinutes": "…", "DB:Username": "…", "DB:Password": "…"
Untuk Pendekatan Code-First dalam membuat database, jalankan perintah berikut (pastikan direktori Anda saat ini adalah Plantagoo.Data
):
dotnet ef migrations add InitialCreate
Diikuti oleh:
dotnet ef database update
Selanjutnya, bangun solusinya dengan menjalankan:
dotnet build
Setelah selesai, luncurkan aplikasi dengan menjalankan:
dotnet run
Luncurkan https://localhost:5001/swagger/index.html di browser Anda untuk melihat dokumentasi Swagger API Anda
.NET Inti 3.1
ASP.NET Inti 3.1
Inti Kerangka Entitas 3.1
Pemeta Otomatis
jagoan
xUnit