Magicalizer ist eine kleine, super einfache und leichte Bibliothek, mit der Sie eine vollständig vorgestellte REST -API ASP.NET -Webanwendung mit minimalem Routincode erstellen können.
In den meisten Fällen müssen Sie nur noch DTO/Model/Entity -Klassen, Filter und Validatoren für sie schreiben. Das war's. 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).
Ein wichtiger Punkt: Während Magicalizer das schwere Heben behandelt, können Sie bei Bedarf immer noch jede Standardimplementierung durch Ihre eigene ersetzen. Sobald Sie eine benutzerdefinierte Service -Implementierung für ein Modell erstellt haben, ersetzt sie automatisch die Standardeinstellung. Gleiches gilt für Controller. Es spielt keine Rolle, wo Sie Ihre DTO/Modell-/Entitätsklassen, Validatoren, Dienste oder Controller platzieren - sie werden automatisch entdeckt und gelöst. Dies macht es unglaublich einfach, Code wiederzuverwenden und entkoppelte Software zu erstellen.
Führen Sie die Webanwendung aus und probieren Sie die folgenden Anforderungen aus (Sie können eine Testdatenbank aus diesem Projekt verwenden).
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 Quellen auf GitHub: https://github.com/magicalizer/magicalizer
Autor: http://sikorsky.pro/