From d65ce09aea48f90620d279ead8c72e7e5893b249 Mon Sep 17 00:00:00 2001 From: d_compcontrol Date: Tue, 15 Apr 2025 15:51:57 +0200 Subject: [PATCH] [Feature] REST API Endpoint --- README.md | 8 ++++++++ TemplateNETService/BaseWorker.cs | 5 +++-- .../Controllers/ServiceController.cs | 16 ++++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 TemplateNETService/Controllers/ServiceController.cs diff --git a/README.md b/README.md index 96e9459..4682cde 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,10 @@ # TemplateNETService +Template for windows service based on .net 8 with the following features: + - Log with Serilog + - Example to extract configuration settings from appsettings.json and safe in static class "Config" + - OnStart & OnStop functions (File: BaseWorker.cs) + - Batch files to install / delete service + - Example for an API-Endpoint: api/ping (File: ServiceController.cs) + + diff --git a/TemplateNETService/BaseWorker.cs b/TemplateNETService/BaseWorker.cs index 4a6483b..8e97844 100644 --- a/TemplateNETService/BaseWorker.cs +++ b/TemplateNETService/BaseWorker.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using TemplateNETService.Business; namespace TemplateNETService { @@ -12,7 +13,7 @@ namespace TemplateNETService { protected override async Task ExecuteAsync(CancellationToken stoppingToken) { - Log.Debug("Der Service wurde gestartet."); + Log.Debug($"Service is started on port {Config.general.ThisPort}..."); while (!stoppingToken.IsCancellationRequested) { @@ -23,7 +24,7 @@ namespace TemplateNETService public override async Task StopAsync(CancellationToken cancellationToken) { - Log.Debug("Der Service wird gestoppt."); + Log.Debug("Service stopped..."); } } } diff --git a/TemplateNETService/Controllers/ServiceController.cs b/TemplateNETService/Controllers/ServiceController.cs new file mode 100644 index 0000000..ca8d81b --- /dev/null +++ b/TemplateNETService/Controllers/ServiceController.cs @@ -0,0 +1,16 @@ +using Microsoft.AspNetCore.Mvc; + +namespace TemplateNETService.Controllers +{ + [ApiController] + [Route("api")] + public class ServiceController : ControllerBase + { + [HttpGet] + [Route("ping")] + public IActionResult GetStatus() + { + return Ok(); + } + } +}