Aspire 13.1 新特性与 MCP 工具
This commit is contained in:
parent
b11ba4f6a5
commit
54a2f5275d
3
.aspire/settings.json
Normal file
3
.aspire/settings.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"appHostPath": "../src/HelloShop.AppHost/HelloShop.AppHost.csproj"
|
||||||
|
}
|
||||||
@ -4,14 +4,14 @@
|
|||||||
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
|
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageVersion Include="Aspire.Hosting.Maui" Version="13.0.2-preview.1.25603.5" />
|
<PackageVersion Include="Aspire.Hosting.Maui" Version="13.1.0-preview.1.25616.3" />
|
||||||
<PackageVersion Include="Aspire.Hosting.PostgreSQL" Version="13.0.2" />
|
<PackageVersion Include="Aspire.Hosting.PostgreSQL" Version="13.1.0" />
|
||||||
<PackageVersion Include="Aspire.Hosting.RabbitMQ" Version="13.0.2" />
|
<PackageVersion Include="Aspire.Hosting.RabbitMQ" Version="13.1.0" />
|
||||||
<PackageVersion Include="Aspire.Hosting.Redis" Version="13.0.2" />
|
<PackageVersion Include="Aspire.Hosting.Redis" Version="13.1.0" />
|
||||||
<PackageVersion Include="Aspire.Hosting.Testing" Version="13.0.2" />
|
<PackageVersion Include="Aspire.Hosting.Testing" Version="13.1.0" />
|
||||||
<PackageVersion Include="Aspire.Npgsql.EntityFrameworkCore.PostgreSQL" Version="13.0.2" />
|
<PackageVersion Include="Aspire.Npgsql.EntityFrameworkCore.PostgreSQL" Version="13.1.0" />
|
||||||
<PackageVersion Include="Aspire.RabbitMQ.Client" Version="13.0.2" />
|
<PackageVersion Include="Aspire.RabbitMQ.Client" Version="13.1.0" />
|
||||||
<PackageVersion Include="Aspire.StackExchange.Redis.DistributedCaching" Version="13.0.2" />
|
<PackageVersion Include="Aspire.StackExchange.Redis.DistributedCaching" Version="13.1.0" />
|
||||||
<PackageVersion Include="AutoMapper" Version="16.0.0" />
|
<PackageVersion Include="AutoMapper" Version="16.0.0" />
|
||||||
<PackageVersion Include="Blazored.FluentValidation" Version="2.2.0" />
|
<PackageVersion Include="Blazored.FluentValidation" Version="2.2.0" />
|
||||||
<PackageVersion Include="CommunityToolkit.Aspire.Hosting.Dapr" Version="13.0.1-beta.468" />
|
<PackageVersion Include="CommunityToolkit.Aspire.Hosting.Dapr" Version="13.0.1-beta.468" />
|
||||||
|
|||||||
@ -20,9 +20,12 @@ public class OpenApiConfigureOptions(IConfiguredServiceEndPointResolver serviceR
|
|||||||
UriBuilder uriBuilder = new(endPoint) { Path = "/openapi/v1.json" };
|
UriBuilder uriBuilder = new(endPoint) { Path = "/openapi/v1.json" };
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
HttpRequestMessage request = new(HttpMethod.Get, uriBuilder.Uri) { Version = new Version(2, 0) };
|
HttpRequestMessage request = new(HttpMethod.Get, uriBuilder.Uri) { Version = new Version(2, 0) };
|
||||||
HttpResponseMessage response = httpClient.SendAsync(request).GetAwaiter().GetResult();
|
|
||||||
|
using CancellationTokenSource cts = new(TimeSpan.FromSeconds(5));
|
||||||
|
HttpResponseMessage response = httpClient.SendAsync(request, cts.Token).GetAwaiter().GetResult();
|
||||||
|
|
||||||
if (response.IsSuccessStatusCode)
|
if (response.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
urlDescriptors.Add(new UrlDescriptor
|
urlDescriptors.Add(new UrlDescriptor
|
||||||
@ -32,18 +35,35 @@ public class OpenApiConfigureOptions(IConfiguredServiceEndPointResolver serviceR
|
|||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (logger.IsEnabled(LogLevel.Warning))
|
||||||
|
{
|
||||||
|
logger.LogWarning("Failed to get swagger endpoint for {ServiceName} at {Endpoint}, Status: {StatusCode}",
|
||||||
|
serviceEndpoint.ServiceName, uriBuilder.Uri, response.StatusCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (OperationCanceledException)
|
||||||
|
{
|
||||||
|
if (logger.IsEnabled(LogLevel.Warning))
|
||||||
|
{
|
||||||
|
logger.LogWarning("Timeout getting swagger endpoint for {ServiceName} at {Endpoint}",
|
||||||
|
serviceEndpoint.ServiceName, uriBuilder.Uri);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
if (logger.IsEnabled(LogLevel.Error))
|
if (logger.IsEnabled(LogLevel.Warning))
|
||||||
{
|
{
|
||||||
logger.LogError(ex, "Failed to get swagger endpoint for {ServiceName}", serviceEndpoint.ServiceName);
|
logger.LogWarning(ex, "Failed to get swagger endpoint for {ServiceName} at {Endpoint}",
|
||||||
|
serviceEndpoint.ServiceName, uriBuilder.Uri);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
options.ConfigObject.Urls = urlDescriptors;
|
|
||||||
|
|
||||||
|
options.ConfigObject.Urls = urlDescriptors;
|
||||||
options.SwaggerEndpoint("/openapi/v1.json", "apiservice");
|
options.SwaggerEndpoint("/openapi/v1.json", "apiservice");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,6 +25,12 @@ builder.Services.AddReverseProxy()
|
|||||||
|
|
||||||
builder.Services.AddSingleton<IConfiguredServiceEndPointResolver, ConfiguredServiceEndPointResolver>();
|
builder.Services.AddSingleton<IConfiguredServiceEndPointResolver, ConfiguredServiceEndPointResolver>();
|
||||||
builder.Services.AddSingleton<IReverseProxyConfigProvider, CustomReverseProxyConfigProvider>();
|
builder.Services.AddSingleton<IReverseProxyConfigProvider, CustomReverseProxyConfigProvider>();
|
||||||
|
|
||||||
|
builder.Services.AddHttpClient<OpenApiConfigureOptions>(client =>
|
||||||
|
{
|
||||||
|
client.Timeout = TimeSpan.FromSeconds(30);
|
||||||
|
});
|
||||||
|
|
||||||
builder.Services.AddTransient<IConfigureOptions<SwaggerUIOptions>, OpenApiConfigureOptions>();
|
builder.Services.AddTransient<IConfigureOptions<SwaggerUIOptions>, OpenApiConfigureOptions>();
|
||||||
builder.Services.AddTransient<IPermissionService, PermissionService>();
|
builder.Services.AddTransient<IPermissionService, PermissionService>();
|
||||||
|
|
||||||
|
|||||||
@ -10,5 +10,7 @@ spec:
|
|||||||
value: "localhost:6379"
|
value: "localhost:6379"
|
||||||
- name: redisPassword
|
- name: redisPassword
|
||||||
value: "guest"
|
value: "guest"
|
||||||
|
- name: enableTLS
|
||||||
|
value: "true"
|
||||||
auth:
|
auth:
|
||||||
secretStore: env-secretstore
|
secretStore: env-secretstore
|
||||||
@ -1,4 +1,4 @@
|
|||||||
<Project Sdk="Aspire.AppHost.Sdk/13.0.2">
|
<Project Sdk="Aspire.AppHost.Sdk/13.1.0">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFramework>net10.0</TargetFramework>
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
|
|||||||
@ -62,8 +62,8 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.Maui.Controls" Version="10.0.11" />
|
<PackageReference Include="Microsoft.Maui.Controls" Version="10.0.20" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebView.Maui" Version="10.0.11" />
|
<PackageReference Include="Microsoft.AspNetCore.Components.WebView.Maui" Version="10.0.20" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="10.0.1" />
|
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="10.0.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user