Gateway in Aspire

This commit is contained in:
2025-09-15 01:14:43 +08:00
parent 091097a858
commit c1016e496a
9 changed files with 43 additions and 60 deletions

View File

@@ -1,30 +1,53 @@
using Aspire.Hosting.Yarp.Transforms;
var builder = DistributedApplication.CreateBuilder(args);
var database = builder.AddPostgres("database");
var cache = builder.AddConnectionString("cache");
var queue = builder.AddNats("queue").WithJetStream();
var ring = builder.AddProject<Projects.DysonNetwork_Ring>("ring")
var ringService = builder.AddProject<Projects.DysonNetwork_Ring>("ring")
.WithReference(database)
.WithReference(queue);
var pass = builder.AddProject<Projects.DysonNetwork_Pass>("pass")
var passService = builder.AddProject<Projects.DysonNetwork_Pass>("pass")
.WithReference(database)
.WithReference(cache)
.WithReference(queue)
.WithReference(ring);
builder.AddProject<Projects.DysonNetwork_Drive>("drive")
.WithReference(ringService);
var driveService = builder.AddProject<Projects.DysonNetwork_Drive>("drive")
.WithReference(database)
.WithReference(cache)
.WithReference(queue)
.WithReference(pass);
builder.AddProject<Projects.DysonNetwork_Sphere>("sphere")
.WithReference(passService);
var sphereService = builder.AddProject<Projects.DysonNetwork_Sphere>("sphere")
.WithReference(database)
.WithReference(cache)
.WithReference(queue)
.WithReference(pass);
builder.AddProject<Projects.DysonNetwork_Develop>("develop")
.WithReference(passService);
var developService = builder.AddProject<Projects.DysonNetwork_Develop>("develop")
.WithReference(database)
.WithReference(cache)
.WithReference(pass);
.WithReference(passService);
var gateway = builder.AddYarp("gateway")
.WithHostPort(5000)
.WithConfiguration(yarp =>
{
yarp.AddRoute("/ring/{**catch-all}", ringService)
.WithTransformPathRemovePrefix("/ring")
.WithTransformPathPrefix("/api");
yarp.AddRoute("/id/{**catch-all}", passService)
.WithTransformPathRemovePrefix("/id")
.WithTransformPathPrefix("/api");
yarp.AddRoute("/drive/{**catch-all}", driveService)
.WithTransformPathRemovePrefix("/drive")
.WithTransformPathPrefix("/api");
yarp.AddRoute("/sphere/{**catch-all}", sphereService)
.WithTransformPathRemovePrefix("/sphere")
.WithTransformPathPrefix("/api");
yarp.AddRoute("/develop/{**catch-all}", developService)
.WithTransformPathRemovePrefix("/develop")
.WithTransformPathPrefix("/api");
});
builder.Build().Run();

View File

@@ -15,6 +15,7 @@
<PackageReference Include="Aspire.Hosting.AppHost" Version="9.4.2"/>
<PackageReference Include="Aspire.Hosting.Nats" Version="9.4.2" />
<PackageReference Include="Aspire.Hosting.PostgreSQL" Version="9.4.2" />
<PackageReference Include="Aspire.Hosting.Yarp" Version="9.4.2-preview.1.25428.12" />
</ItemGroup>
<ItemGroup>