Magicalizer adalah perpustakaan kecil, super sederhana, dan ringan yang memungkinkan Anda untuk membuat aplikasi web REST API ASP.NET Core dengan kode rutin minimal.
Dalam kebanyakan kasus, yang perlu Anda tulis adalah kelas DTO/model/entitas, filter, dan validator untuk mereka. Itu saja. Your web application will automatically support complex filtering (including multiple nested object properties, ranges, etc.), complex sorting (multiple nested object properties with different directions), pagination, complex inclusions (nested object properties), flexible and powerful validation at both the DTO and model levels (using FluentValidation), and policy-based authorization for GET, POST, PUT, PATCH, and DELETE requests (yes, PATCH requests are supported too).
Satu poin penting: Sementara magicalizer menangani angkat berat, Anda masih dapat mengganti implementasi default apa pun dengan Anda sendiri saat dibutuhkan. Setelah Anda membuat implementasi layanan khusus untuk model apa pun, itu akan secara otomatis menggantikan yang default. Hal yang sama berlaku untuk pengontrol. Tidak masalah di mana Anda menempatkan kelas DTO/model/entitas, validator, layanan, atau pengontrol - mereka akan ditemukan dan diselesaikan secara otomatis. Ini membuatnya sangat mudah digunakan kembali dan membuat perangkat lunak yang dipisahkan.
Jalankan aplikasi web dan coba permintaan berikut (Anda dapat menggunakan database pengujian dari proyek ini).
GET: /v1/categories GET: /v1/categories?name.contains=izza GET: /v1/categories?products.any.photos.any.filename.contains=.jpg&fields=products.photos GET: /v1/categories/1 GET: /v1/categories/5?fields=products.photos GET: /v1/products GET: /v1/products?id.in=1&id.in=2 GET: /v1/products?category.id=5&sorting=+name&offset=0&limit=5 GET: /v1/products?category.id=5&sorting=-name&offset=0&limit=5 GET: /v1/products?category.name.equals=Pizza&name.contains=ana&fields=category POST: /v1/categories { "name" : " Sushi " } PUT: /v1/categories { "id" : 1 , "name" : " Not sushi " } PATCH: /v1/categories/1 [{ "op" : " replace " , "path" : " name " , "value" : " Sushi again o_O " }] DELETE: /v1/categories/1 Sumber di GitHub: https://github.com/magicalizer/magicalizer
Penulis: http://sikorsky.pro/