DOTNET-API-BOILERPLATE
Proyek .Net 5.0 Webapi Boilerplate / Templat. Repositori, kesombongan, mapper, serilog, dan lainnya diterapkan.
Tujuan dari proyek ini adalah untuk menjadi kickstart ke .NET Webapi Anda, menerapkan pola dan teknologi bekas yang paling umum untuk API yang tenang di .net, membuat pekerjaan Anda lebih mudah.
Bagaimana menjalankan
- Gunakan template ini (github) atau klon/unduh ke tempat kerja lokal Anda.
- Unduh .NET SDK dan Visual Studio/Code terbaru.
Mandiri
- Anda mungkin memerlukan instance MSSQL yang sedang berjalan, dengan migrasi yang tepat diinisialisasi.
- Anda dapat menjalankan hanya DB di Docker. Untuk itu, Anda harus mengubah string koneksi Anda ke "server = 127.0.0.1; database = master; user = sa; kata sandi = yourpassword123" dan jalankan perintah berikut:
docker-compose up -d db-server . Melakukan itu, aplikasi akan dapat mencapai de container dari server DB. - Jika Anda mau, Anda dapat mengubah databaseExtension untuk menggunakan UseInMemoryDatabase, bukan MSSQL.
- Pergi ke folder SRC/Boilerplate.API dan jalankan
dotnet run , atau, di Visual Studio mengatur proyek API sebagai startup dan jalankan sebagai konsol atau buruh pelabuhan (bukan IIS). - Kunjungi http: // localhost: 5000/API-docs atau https: // localhost: 5001/API-DOCS untuk mengakses kesombongan aplikasi.
Buruh pelabuhan
- Jalankan
docker-compose up -d di direktori root, atau, di Visual Studio, atur proyek komposisi Docker sebagai startup dan run. Ini harus memulai aplikasi dan DB.
- Untuk komposisi Docker, Anda harus menjalankan perintah ini pada folder root:
dotnet dev-certs https -ep https/aspnetapp.pfx -p yourpassword ganti "yourpassword" dengan sesuatu yang lain dalam perintah ini dan file compose docker.override.yml. Ini menciptakan sertifikat HTTPS.
- Kunjungi http: // localhost: 5000/API-docs atau https: // localhost: 5001/API-DOCS untuk mengakses kesombongan aplikasi.
Menjalankan tes
Di folder root, jalankan dotnet test . Perintah ini akan mencoba menemukan semua proyek pengujian yang terkait dengan file SLN.
Proyek ini berisi:
- Swaggerui
- EntityFramework
- Automapper
- Repositori generik (untuk dengan mudah bootstrap repositori crud)
- Serilog dengan penebangan permintaan dan wastafel yang mudah dikonfigurasi
- .NET Injeksi Ketergantungan
- Penyaringan sumber daya
- Kompresi respons
- CI (Tindakan GitHub)
- Tes unit
- Tes integrasi
- Dukungan Kontainer dengan Docker dan Docker-Compose
Struktur proyek
- Layanan
- Folder ini menyimpan API Anda dan proyek apa pun yang mengirimkan data kepada pengguna Anda.
- Boilerplate.api
- Ini adalah proyek API utama. Berikut adalah semua pengontrol dan inisialisasi untuk API yang akan digunakan.
- Docker-Compose
- Proyek ini ada untuk memungkinkan Anda menjalankan Docker-Compose dengan Visual Studio. Ini berisi referensi ke file compose Docker dan akan membangun semua dependensi proyek dan menjalankannya.
- Aplikasi
- Folder ini menyimpan semua transformasi data antara API Anda dan lapisan domain Anda. Ini juga berisi logika bisnis Anda.
- Domain
- Folder ini berisi model bisnis, enum, dan antarmuka umum Anda.
- Boilerplate.domain.core
- Berisi entitas dasar untuk semua entitas domain lainnya, serta antarmuka untuk implementasi repositori.
- Boilerplate.domain
- Berisi model bisnis dan enum.
- Infra
- Folder ini berisi semua repositori akses data, konteks basis data, apa pun yang mencapai data luar.
- Boilerplate.Infrastructure
- Proyek ini berisi DBContext, implementasi generik dari pola repositori dan repositori pahlawan (kelas domain).
Mengadopsi proyek Anda
- Hapus/ganti nama semua hal terkait pahlawan dengan kebutuhan Anda.
- Ubah nama solusi, proyek, ruang nama, dan aturan untuk Anda gunakan.
- Ubah DockerFile dan Docker-Compose.yml ke nama csproj/folder baru Anda.
- Beri repo ini bintang!
Migrasi
Untuk menjalankan migrasi pada proyek ini, jalankan perintah berikut pada folder root:
-
dotnet ef migrations add InitialCreate --startup-project .srcBoilerplate.Api --project .srcBoilerplate.Infrastructure
Perintah ini akan mengatur titik entri untuk migrasi (yang bertanggung jawab untuk memilih DBProvider {SQLServer, MySQL, dll} dan string koneksi) dan proyek itu sendiri akan menjadi infrastruktur, yang merupakan tempat DBContext berada.
Jika Anda menyukainya, berikan bintangnya
Jika template ini berguna untuk Anda, atau jika Anda belajar sesuatu, tolong beri bintang!
Terima kasih
Proyek ini memiliki pengaruh besar dari https://github.com/lkurzyniec/netcore-boilerplate dan https://github.com/eduardopires/equinoxproject. Jika Anda punya waktu, silakan kunjungi repo ini, dan beri mereka bintang juga!
Tentang
Boilerplate/template ini dikembangkan oleh Yan Pitangui di bawah lisensi MIT.