WebServiceLib makes it easy to create a REST server with the help of a simple Inversion of Control container with Dependency Injection.
With WebServiceLib one can annotate classes with the [Component] attribute, so that their are instanced by the library. Other classes can get these managed classes through injecting them in their fields via the [Autowired] attribute.
Endpoints are are managed through classes marked with [Controller]. There one can define endpoints with methods that are marked with HTTP-method and path attributes like [Post("/battles")]. These methods can have parameters for payloads like Dictionary<string, object>? for JSON or just string? for plaintext. Additional path variables like the 1 in /foo/1 can be accessed through a PathVariable parameter, additional information in the format /foo?id=1 can be accessed through a PathParam attribute. User information can be read from an additional AuthDetails? parameter. User information is only available on secured endpoints, which are configured by a security config class annotated with [Security].
dotnet build --configuration Release
Run CRUD message listener example code
dotnet run --project ./Example/Example.csproj
Run unit tests
dotnet test
For the integration the application Postman is needed.
The test collection for Postman can be found under WebService-Test/Integration/postman.
A more complex example using the WebServiceLib can be found under https://github.com/kurbaniec/SWE1-MTCG.
