Skip to content

Wissance.WebApiToolkit wiki

Ushakov Michael edited this page Sep 18, 2025 · 32 revisions

1 Introduction

Wissance.WebApiToolkit is a set of libraries that helps to build WebAPI faster with a standardized manner and approach. We told WebAPI therefore we mean not only REST but also gRPC and SignalR too. Wissance.WebApiToolkit is well structured and contains reusable parts that allow you to combine them and extend default behavior. Core interfaces of Wissance.WebApiToolkit are independent from any specific technology and could be easily implemented with different techologies. There are full examples of usage, see Examples section

2 Solution structure (libraries)

Solution contains multiple projects, the most important are:

  1. Wissance.WebApiToolkit.Core core interfaces and classes that minimally depend on libs and frameworks that are not part of FCL.
  2. Wissance.WebApiToolkit.Ef implementations of base Core interfaces based on EntityFramework for managing persistent data
  3. Wissance.WebApiToolkit.AWS.S3 implementation of the IFileManager and other utils for working with files and directories with different S3 Cloud services (AWS, Cloudflare R2, Yandex and many others compatible by API with Amazon)

3 Wissance.WebApiToolkit structure and components

Wissance.WebApiToolkit structure is shown in the picture below:

WebApiToolkitStructure

There are following main concepts:

  1. The system is split on 3 main levels: DTO/Message, Controller/Service, and Manager
  2. All controller base operations are related to a specific TObj class (same for all operations).
  3. The result of the operation is represented with a DTO/Message object except for the Delete operation.
  4. There is an additional branch (file management) that does not yet have a generic controller (maybe in the future)
  5. Translation from TObj to TRes and back is performed by Factory classes

Therefore the main algorithm to create Application with WebApiToolkit: Therefore, the main algorithm to create an application with WebApiToolkit:

  1. Create a set of entity classes (TObj/TData) that implements the IModelIdentifiable interface
  2. Create a set of entity representations as TRes (DTO) like TRes Create(TObj entity)
  3. Create a set of manager classes for pairs (TRes, TObj)
  4. Create controllers that derives from BasicReadController, BasicCrudController, or BasicBulkCrudController or service corresponding to these Controllers classes.

Using Wissance.WebApiToolkit.Ef we can simplify all these steps and create controllers just with one line of code and TObj entity classes, but there are some limitations to such instant API creation; see here

4 Key Features

  1. Manager classes are using both for gRPC services and REST API Controllers, supports BULK-operations
  2. Wissance.WebApiToolkit has implementation of manager class that allows you **to run the most popular solution, **- REST Controllers with EntityFramework quickly and even in 1 line of code
  3. Paging and sorting works with Ef out of the box
  4. GET-methods filtering allows extending filters to controllers using the same method of base class; therefore, it could be easily reused, and such extending is supported by Swagger, all parameters are displaying
  5. Contains file manager and implementation baseds on [Web Folder](add link) and [Cloud S3](add link)

5 Examples

There are multiple examples:

FAQ

...tbd

Clone this wiki locally