Magicalizer是一個小型,超級簡單且輕巧的庫,可讓您創建一個具有最小例程代碼的完整特色的REST API ASP.NET CORE WEB應用程序。
在大多數情況下,您需要編寫的只是為其編寫的DTO/模型/實體類,過濾器和驗證器。就是這樣。 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).
重要的一點是:雖然Magicalizer處理繁重的工作,但您仍然可以在需要時自行替換任何默認實現。為任何模型創建自定義服務實現後,它將自動替換默認的服務。同樣適用於控制器。將DTO/模型/實體類,驗證器,服務或控制器放置在何處,它們會自動發現和解決。這使得重複使用代碼並創建解耦軟件變得非常容易。
運行Web應用程序並嘗試以下請求(您可以使用此項目中的測試數據庫)。
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 github上的資料:https://github.com/magicalizer/magicalizer
作者:http://sikorsky.pro/