using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using TouchSocket.Core; using TouchSocket.Http; using TouchSocket.Rpc; using TouchSocket.Sockets; using TouchSocket.WebApi.Swagger; #region << 版 本 注 释 >> /*-------------------------------------------------------------------- * 版权所有 (c) 2024 WenJY 保留所有权利。 * CLR版本:4.0.30319.42000 * 机器名称:T14-GEN3-7895 * 命名空间:SlnMesnac.TouchSocket * 唯一标识:4e47989b-9d43-426e-b67a-529de3b1b0e8 * * 创建者:WenJY * 电子邮箱: * 创建时间:2024-09-04 10:51:29 * 版本:V1.0.0 * 描述: * *-------------------------------------------------------------------- * 修改人: * 时间: * 修改说明: * * 版本:V1.0.0 *--------------------------------------------------------------------*/ #endregion << 版 本 注 释 >> namespace SlnMesnac.TouchSocket { public class WebApiServer { private ApiServer _apiServer; public WebApiServer(ApiServer apiServer) { _apiServer = apiServer; } public void Init() { try { var service = new HttpService(); service.Setup(new TouchSocketConfig() .SetListenIPHosts(7789) .ConfigureContainer(a => { a.AddRpcStore(store => { store.RegisterServer(_apiServer);//注册服务 }); a.AddCors(corsOption => { corsOption.Add("cors", corsBuilder => { corsBuilder.AllowAnyMethod() .AllowAnyOrigin(); }); }); a.AddLogger(logger => { logger.AddConsoleLogger(); logger.AddFileLogger(); }); }) .ConfigurePlugins(a => { a.UseCheckClear(); a.Add(); a.UseWebApi() .ConfigureConverter(converter => { converter.AddJsonSerializerFormatter(new Newtonsoft.Json.JsonSerializerSettings() { Formatting = Newtonsoft.Json.Formatting.None }); }); a.UseSwagger();//使用Swagger页面 //.UseLaunchBrowser(); a.UseDefaultHttpServicePlugin(); })); service.Start(); Console.WriteLine("以下连接用于测试webApi"); Console.WriteLine($"使用:http://127.0.0.1:7789/swagger/index.html"); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } //Console.ReadLine(); } } internal class AuthenticationPlugin : PluginBase, IHttpPlugin { public async Task OnHttpRequest(IHttpSocketClient client, HttpContextEventArgs e) { await e.InvokeNext(); } } }