Without | With Wissance.WebApiToolkit |
---|---|
⛔ Manual support for the API uniformity |
✅ Output of all REST methods is standardize |
⛔ Every Controller requires at least 20 min to be written | ✅ Up to one line of code for fully functional CRUD |
⛔ Inconsistent error response | ✅ Unified error format out of the box |
⛔ Requires to rewrite controllers to add a new technology |
✅ Requires only a new Manager class |
⛔ Not supporting bulk operation by default | ✅ Up to one line of code for fully functional BULK API |
⛔ Controller logic can't be easily used forgRPC or SignalR |
✅ You could have the same Manager to handle REST , gRPC ,and a SignalR simultaneously |
⛔ Paging and Sorting should be written for every controller separately |
✅ Paging and sorting are implemented out of the box in the uniform manner |
For the full doc see the 📚 project wiki, to add in one line, for example i break it to Assembly
get and add Controller
, i.e.:
- Generate assembly:
Assembly stationControllerAssembly = services.AddSimplifiedAutoController<StationEntity, Guid, EmptyAdditionalFilters>(
provider.GetRequiredService<ModelContext>(), "Station",
ControllerType.FullCrud, null, provider.GetRequiredService<ILoggerFactory>());
- Add Controller from assembly:
services.AddControllers().AddApplicationPart(stationControllerAssembly).AddControllersAsServices();
- 🔥
REST API Controller
with fullCRUD
contains only 20 lines of code (~ 10 are imports)GET
methods have built-in paging support;GET
methods have built-in sorting and filter by query parameters;
- 🚀 BULK operations with objects (Bulk
Create
,Update
andDelete
) on a Controller && interface level - 🧠 support to work with any persistent storage (
IModelManager
interface); Good built-in EntityFramework support (seeEfModelManager
class). See WeatherControl App which has - 🎨 Manager classes that support file operation over:
- web folders (folders from mounted devices or just local folders)
- S3 AWS-compatible (tested with
Yandex Object Storage
and previously withCloudflare R2
andAmazon S3
)
🆒 Bulk
vs 🙅♂️ Non-Bulk, Wissance.WebApiToolkit
has Bulk out of the box:
- 😱 Elapsed time in Non-Bulk REST API with EF is ~976 ms.
- 🔥 Elapsed time in Bulk API with EF is ~4 ms.
✨ Result : Bulk API
is almost ~250 x faster!
You could see our articles about Toolkit usage:
- ✍️ Medium article about v1.0.x usage
- ✍️ Dev.to article about v1.0.x usage
- ✍️ One line for full CRUD Medium article