What Can Be Customized
The Origam server is implemented with C# Web API.
The server customization described here allows you to do two things:
- add your own ASP .NET controllers
- change server settings by modifying
IApplicationBuilder
(configured in Startup.cs). You can see what can be configured here
Custom Controller
First you have to create a new C# net6.0 library project and reference Microsoft.AspNetCore.Mvc
package using NuGet. Then you can add the controller file. A minimal implementation could look like this:
using Microsoft.AspNetCore.Mvc;
namespace TestController;
[ApiController]
[Route("testPath/[controller]")]
public class CustomController : ControllerBase
{
[HttpGet("test/message")]
public IActionResult GetMessagesRequest()
{
return Ok("Test");
}
}
This will result in a GET endpoint on route testPath/Custom/test/message
which will return “Test”.
Then you can build the project and set the resulting *.dll
path to the ExtensionDlls property in the appsettings.json. See Appsettings.json documentation for details.
Server Configuration
Create a new C# net6.0 library project and reference Origam.Service.Core
package using NuGet. Then create a new class that will implement IWebApplicationExtender
from the refeneced package. Implement the Extend
method.
void Extend(IApplicationBuilder app, IConfiguration configuration)
Here you can call methods on the IApplicationBuilder
. The IConfiguration
parameter contains the server configuration from appsettings.json
so you can read your own configuration from there.
Just like in the previous case you have to add path to your *.dll
to the ExtensionDlls
property in the appsettings.json to load the dll into the server.
Examples
You can see examples of both custom controller and server configuration in the Origam.Chat project.