Magicalizer es una biblioteca pequeña, súper simple y liviana que le permite crear una aplicación web ASP.NET Core ASP.NET completamente destacada con un código de rutina mínimo.
En la mayoría de los casos, todo lo que necesita escribir son clases DTO/Modelo/Entidad, filtros y validadores para ellos. Eso es todo. Su aplicación web admitirá automáticamente un filtrado complejo (incluidas múltiples propiedades de objetos anidados, rangos, etc.), clasificación compleja (múltiples propiedades de objetos anidados con diferentes direcciones), paginación, inclusiones complejas (propiedades de objetos anidados), validación flexible y potente en los niveles de DTO y modelos (usando FluentValidation) y la autorización basada en políticas para obtener, POST, Patch, y Patch y Delete Solications (sí, también lo admiten).
Un punto importante: mientras el mágico maneja el trabajo pesado, aún puede reemplazar cualquier implementación predeterminada con la suya cuando sea necesario. Una vez que cree una implementación de servicio personalizado para cualquier modelo, reemplazará automáticamente la predeterminada. Lo mismo se aplica a los controladores. No importa dónde coloque sus clases de DTO/Modelo/Entidad, validadores, servicios o controladores; se descubrirán y resolverán automáticamente. Esto hace que sea increíblemente fácil reutilizar el código y crear un software desacoplado.
Ejecute la aplicación web y pruebe las siguientes solicitudes (puede usar una base de datos de prueba de este proyecto).
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 Fuentes en Github: https://github.com/magicalizer/magicalizer
Autor: http://sikorsky.pro/