为 UserHost/CustomerHost/ChessGameHost/FishRoomHost 补回 swagger;修正服务器替换脚本的网关健康检查
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
@@ -16,6 +16,7 @@
|
||||
<PackageReference Include="DotNetCore.CAP.PostgreSql" Version="8.3.4" />
|
||||
<PackageReference Include="DotNetCore.CAP.RabbitMQ" Version="8.3.4" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="8.0.17" />
|
||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -85,6 +85,23 @@ builder.Services.AddSingleton<IRequestApi, RequestApi>();
|
||||
builder.Services.AddAutoMapper(typeof(AutoMapperConfig));
|
||||
|
||||
builder.Services.AddHostedService<ChessTimeoutService>();
|
||||
#region Swagger
|
||||
builder.Services.AddEndpointsApiExplorer();
|
||||
builder.Services.AddSwaggerGen(c =>
|
||||
{
|
||||
c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
|
||||
{
|
||||
Title = "ChessGameHost",
|
||||
Description = "象棋Socket接口",
|
||||
Version = "v1"
|
||||
});
|
||||
foreach (var xml in System.IO.Directory.GetFiles(AppContext.BaseDirectory, "*.xml"))
|
||||
{
|
||||
try { c.IncludeXmlComments(xml, true); } catch { }
|
||||
}
|
||||
});
|
||||
#endregion
|
||||
|
||||
builder.Services.AddHostedService<ChessBotService>();
|
||||
|
||||
builder.Services.AddHealthChecks()
|
||||
@@ -190,6 +207,15 @@ if (app.Environment.IsDevelopment())
|
||||
{
|
||||
|
||||
}
|
||||
#region Swagger
|
||||
app.UseSwagger(c => c.RouteTemplate = "swagger/{documentName}/swagger.json");
|
||||
app.UseSwaggerUI(c =>
|
||||
{
|
||||
c.RoutePrefix = "swagger";
|
||||
c.SwaggerEndpoint("v1/swagger.json", "ChessGameHost v1");
|
||||
});
|
||||
#endregion
|
||||
|
||||
app.UseApiLogging();
|
||||
app.UseRouting();
|
||||
app.UseGlobalExceptionHandler();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
@@ -17,6 +17,7 @@
|
||||
<PackageReference Include="DotNetCore.CAP.Dashboard" Version="8.3.4" />
|
||||
<PackageReference Include="DotNetCore.CAP.PostgreSql" Version="8.3.4" />
|
||||
<PackageReference Include="DotNetCore.CAP.RabbitMQ" Version="8.3.4" />
|
||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -105,6 +105,23 @@ builder.Services.AddCap(builder.Configuration);
|
||||
|
||||
// ============================================
|
||||
// ============================================
|
||||
#region Swagger
|
||||
builder.Services.AddEndpointsApiExplorer();
|
||||
builder.Services.AddSwaggerGen(c =>
|
||||
{
|
||||
c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
|
||||
{
|
||||
Title = "CustomerApi",
|
||||
Description = "客服服务 API 文档",
|
||||
Version = "v1"
|
||||
});
|
||||
foreach (var xml in System.IO.Directory.GetFiles(AppContext.BaseDirectory, "*.xml"))
|
||||
{
|
||||
try { c.IncludeXmlComments(xml, true); } catch { }
|
||||
}
|
||||
});
|
||||
#endregion
|
||||
|
||||
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
|
||||
builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
|
||||
{
|
||||
@@ -122,6 +139,15 @@ if (app.Environment.IsDevelopment())
|
||||
app.UseDeveloperExceptionPage();
|
||||
}
|
||||
|
||||
#region Swagger
|
||||
app.UseSwagger(c => c.RouteTemplate = "customerswagger/{documentName}/swagger.json");
|
||||
app.UseSwaggerUI(c =>
|
||||
{
|
||||
c.RoutePrefix = "customerswagger";
|
||||
c.SwaggerEndpoint("v1/swagger.json", "CustomerApi v1");
|
||||
});
|
||||
#endregion
|
||||
|
||||
app.UseCors("Cors");
|
||||
|
||||
var uploadPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "uploads");
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
@@ -18,6 +18,7 @@
|
||||
<PackageReference Include="DotNetCore.CAP.PostgreSql" Version="8.3.4" />
|
||||
<PackageReference Include="DotNetCore.CAP.RabbitMQ" Version="8.3.4" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="8.0.17" />
|
||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -83,6 +83,23 @@ builder.Services.AddSignalR(hubOptions =>
|
||||
})
|
||||
.AddJsonProtocol();
|
||||
|
||||
#region Swagger
|
||||
builder.Services.AddEndpointsApiExplorer();
|
||||
builder.Services.AddSwaggerGen(c =>
|
||||
{
|
||||
c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
|
||||
{
|
||||
Title = "FishRoomHost",
|
||||
Description = "捕鱼房间接口",
|
||||
Version = "v1"
|
||||
});
|
||||
foreach (var xml in System.IO.Directory.GetFiles(AppContext.BaseDirectory, "*.xml"))
|
||||
{
|
||||
try { c.IncludeXmlComments(xml, true); } catch { }
|
||||
}
|
||||
});
|
||||
#endregion
|
||||
|
||||
builder.Services.Configure<FormOptions>(x =>
|
||||
{
|
||||
x.MultipartBodyLengthLimit = 1024 * 1024 * 16;
|
||||
@@ -154,6 +171,15 @@ if (app.Environment.IsDevelopment())
|
||||
{
|
||||
|
||||
}
|
||||
#region Swagger
|
||||
app.UseSwagger(c => c.RouteTemplate = "swagger/{documentName}/swagger.json");
|
||||
app.UseSwaggerUI(c =>
|
||||
{
|
||||
c.RoutePrefix = "swagger";
|
||||
c.SwaggerEndpoint("v1/swagger.json", "FishRoomHost v1");
|
||||
});
|
||||
#endregion
|
||||
|
||||
app.UseApiLogging();
|
||||
app.UseRouting();
|
||||
app.UseGlobalExceptionHandler();
|
||||
|
||||
@@ -113,6 +113,23 @@ builder.Services.AddCronJob<RankingRewardJob>(c =>
|
||||
});
|
||||
|
||||
// Autofac
|
||||
#region Swagger
|
||||
builder.Services.AddEndpointsApiExplorer();
|
||||
builder.Services.AddSwaggerGen(c =>
|
||||
{
|
||||
c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
|
||||
{
|
||||
Title = "UserApi",
|
||||
Description = "游戏大厅接口管理",
|
||||
Version = "v1"
|
||||
});
|
||||
foreach (var xml in System.IO.Directory.GetFiles(AppContext.BaseDirectory, "*.xml"))
|
||||
{
|
||||
try { c.IncludeXmlComments(xml, true); } catch { }
|
||||
}
|
||||
});
|
||||
#endregion
|
||||
|
||||
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
|
||||
builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
|
||||
{
|
||||
@@ -128,6 +145,15 @@ if (app.Environment.IsDevelopment())
|
||||
{
|
||||
app.UseDeveloperExceptionPage();
|
||||
}
|
||||
#region Swagger
|
||||
app.UseSwagger(c => c.RouteTemplate = "swagger/{documentName}/swagger.json");
|
||||
app.UseSwaggerUI(c =>
|
||||
{
|
||||
c.RoutePrefix = "swagger";
|
||||
c.SwaggerEndpoint("v1/swagger.json", "UserApi v1");
|
||||
});
|
||||
#endregion
|
||||
|
||||
app.UseCors("Cors");
|
||||
app.UseRouting();
|
||||
app.MapHub<LoginHub>("/loginhub", options =>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
@@ -17,6 +17,7 @@
|
||||
<PackageReference Include="DotNetCore.CAP.Dashboard" Version="8.3.4" />
|
||||
<PackageReference Include="DotNetCore.CAP.PostgreSql" Version="8.3.4" />
|
||||
<PackageReference Include="DotNetCore.CAP.RabbitMQ" Version="8.3.4" />
|
||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -86,10 +86,15 @@ run_container() {
|
||||
}
|
||||
|
||||
health() {
|
||||
local hp; hp=$(host_port "$1")
|
||||
local svc=$1 hp; hp=$(host_port "$svc")
|
||||
for _ in $(seq 1 15); do
|
||||
local c; c=$(curl -s -o /dev/null -w '%{http_code}' "http://127.0.0.1:$hp/health")
|
||||
[ "$c" = "200" ] && return 0
|
||||
if [ "$svc" = "gateway" ]; then
|
||||
# 网关的 /health 被 Ocelot 接管,会返回 404;只要端口有 HTTP 响应即视为存活
|
||||
[ "$c" != "000" ] && return 0
|
||||
else
|
||||
[ "$c" = "200" ] && return 0
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
return 1
|
||||
|
||||
Reference in New Issue
Block a user