From dd5d55696311ed68a3b4931a0eebc1c0d9e31971 Mon Sep 17 00:00:00 2001 From: Huxley Deng Date: Mon, 7 Jul 2025 16:01:39 +0800 Subject: [PATCH] Implement endpoints in more flexible way. Fix: re-implement `UserEndpoint` as static style which works best with minimal API, simplify the DI framework. Fix: remove no needed service register in main program. --- OptixServe.Api/Endpoints/UserEndpoint.cs | 22 +++++++--------------- OptixServe.Api/Program.cs | 3 --- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/OptixServe.Api/Endpoints/UserEndpoint.cs b/OptixServe.Api/Endpoints/UserEndpoint.cs index e824663..0a76567 100644 --- a/OptixServe.Api/Endpoints/UserEndpoint.cs +++ b/OptixServe.Api/Endpoints/UserEndpoint.cs @@ -9,34 +9,26 @@ namespace OptixServe.Api.Endpoints; [JsonSerializable(typeof(IEnumerable))] public partial class UserJsonContext : JsonSerializerContext { } -public class UserEndpoint +public static class UserEndpoint { - private readonly IUserService _userService; - - // 通过构造函数注入依赖 - public UserEndpoint(IUserService userService) - { - _userService = userService; - } - public static void Register(WebApplication app) { var group = app.MapGroup("/users"); - group.MapGet("/", (UserEndpoint endpoint) => endpoint.GetAllUsers()); - group.MapGet("/{id}", (string id, UserEndpoint endpoint) => endpoint.GetUserById(id)); + group.MapGet("/", GetAllUsers); + group.MapGet("/{id}", GetUserById); } - public IResult GetAllUsers() + public static IResult GetAllUsers(IUserService userService) { - var users = _userService.GetUsers() + var users = userService.GetUsers() .Select(u => new UserDto { Id = u.Id, UserName = u.UserName }); return Results.Ok(users); } - public IResult GetUserById(string id) + public static IResult GetUserById(string id, IUserService userService) { - var user = _userService.GetUserById(id); + var user = userService.GetUserById(id); if (user == null) return Results.NotFound(); diff --git a/OptixServe.Api/Program.cs b/OptixServe.Api/Program.cs index 50db17d..5a6961c 100644 --- a/OptixServe.Api/Program.cs +++ b/OptixServe.Api/Program.cs @@ -107,9 +107,6 @@ static class ExtensionMethods { // Application services builder.Services.AddScoped(); - - // WebAPI Endpoint services - builder.Services.AddScoped(); } ///