Skip to content

Commit 5e04ff1

Browse files
authored
Add an architecture diagram for Aspire project (#1174)
* Add an architecture diagram for Aspire project * . * "WireMock.Net : " + * .
1 parent eb7e6c3 commit 5e04ff1

File tree

4 files changed

+101
-14
lines changed

4 files changed

+101
-14
lines changed

examples-Aspire/AspireApp1.AppHost/Program.cs

+36-8
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,48 @@
22

33
var builder = DistributedApplication.CreateBuilder(args);
44

5-
//IResourceBuilder<ProjectResource> apiService = builder.AddProject<Projects.AspireApp1_ApiService>("apiservice");
5+
IResourceBuilder<ProjectResource> apiService = builder.AddProject<Projects.AspireApp1_ApiService>("apiservice");
66

77
var mappingsPath = Path.Combine(Directory.GetCurrentDirectory(), "WireMockMappings");
88

9-
Console.WriteLine($"MappingsPath: {mappingsPath}");
9+
//IResourceBuilder<WireMockServerResource> apiService = builder
10+
// .AddWireMock("apiservice", WireMockServerArguments.DefaultPort)
11+
// .WithMappingsPath(mappingsPath)
12+
// .WithReadStaticMappings()
13+
// .WithApiMappingBuilder(WeatherForecastApiMock.BuildAsync);
1014

11-
var wiremock = builder
12-
.AddWireMock("apiservice", WireMockServerArguments.DefaultPort)
13-
.WithMappingsPath(mappingsPath)
14-
.WithReadStaticMappings()
15-
.WithApiMappingBuilder(WeatherForecastApiMock.BuildAsync);
15+
//var apiServiceUsedForDocs = builder
16+
// .AddWireMock("apiservice1", WireMockServerArguments.DefaultPort)
17+
// .WithApiMappingBuilder(adminApiBuilder =>
18+
// {
19+
// var summaries = new[]
20+
// {
21+
// "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
22+
// };
23+
24+
// adminApiBuilder.Given(b => b
25+
// .WithRequest(request => request
26+
// .UsingGet()
27+
// .WithPath("/weatherforecast2")
28+
// )
29+
// .WithResponse(response => response
30+
// .WithHeaders(h => h.Add("Content-Type", "application/json"))
31+
// .WithBodyAsJson(() => Enumerable.Range(1, 5).Select(index =>
32+
// new WeatherForecast
33+
// (
34+
// DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
35+
// Random.Shared.Next(-20, 55),
36+
// "WireMock.Net : " + summaries[Random.Shared.Next(summaries.Length)]
37+
// ))
38+
// .ToArray())
39+
// )
40+
// );
41+
42+
// return Task.CompletedTask;
43+
// });
1644

1745
builder.AddProject<Projects.AspireApp1_Web>("webfrontend")
1846
.WithExternalHttpEndpoints()
19-
.WithReference(wiremock);
47+
.WithReference(apiService);
2048

2149
builder.Build().Run();

examples-Aspire/AspireApp1.AppHost/WeatherForecastApiMock.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public static async Task BuildAsync(AdminApiMappingBuilder builder)
2323
(
2424
DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
2525
Random.Shared.Next(-20, 55),
26-
summaries[Random.Shared.Next(summaries.Length)]
26+
"WireMock.Net 2 : " + summaries[Random.Shared.Next(summaries.Length)]
2727
))
2828
.ToArray())
2929
)

examples-Aspire/AspireApp1.AppHost/WireMockMappings/873d495f-940e-4b86-a1f4-4f0fc7be8b8b.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,27 @@
1111
{
1212
"date": "2024-05-24",
1313
"temperatureC": -17,
14-
"summary": "Balmy"
14+
"summary": "WireMock.Net 1 : Balmy"
1515
},
1616
{
1717
"date": "2024-05-25",
1818
"temperatureC": -13,
19-
"summary": "Mild"
19+
"summary": "WireMock.Net 1 : Mild"
2020
},
2121
{
2222
"date": "2024-05-26",
2323
"temperatureC": 31,
24-
"summary": "Bracing"
24+
"summary": "WireMock.Net 1 : Bracing"
2525
},
2626
{
2727
"date": "2024-05-27",
2828
"temperatureC": 6,
29-
"summary": "Hot"
29+
"summary": "WireMock.Net 1 : Hot"
3030
},
3131
{
3232
"date": "2024-05-28",
3333
"temperatureC": -2,
34-
"summary": "Mild"
34+
"summary": "WireMock.Net 1 : Mild"
3535
}
3636
],
3737
"Headers": {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
overview
2+
```mermaid
3+
classDiagram
4+
class WireMockServerResource {
5+
}
6+
7+
class ContainerResource {
8+
}
9+
10+
class IResourceWithServiceDiscovery {
11+
}
12+
13+
class IResourceWithEndpoints {
14+
}
15+
16+
class WireMockServerArguments {
17+
}
18+
19+
class EndpointReference {
20+
}
21+
22+
class AdminApiMappingBuilder {
23+
}
24+
25+
class IWireMockAdminApi {
26+
}
27+
28+
class MappingModelBuilder {
29+
}
30+
31+
class WireMockServerLifecycleHook {
32+
}
33+
34+
class ResourceLoggerService {
35+
}
36+
37+
class DistributedApplicationModel {
38+
}
39+
40+
class IDistributedApplicationLifecycleHook {
41+
}
42+
43+
WireMockServerResource --> ContainerResource : Inherits
44+
WireMockServerResource --> IResourceWithServiceDiscovery : Implements
45+
WireMockServerResource --> WireMockServerArguments : Uses
46+
WireMockServerResource --> EndpointReference : Returns
47+
WireMockServerArguments --> AdminApiMappingBuilder : Uses
48+
AdminApiMappingBuilder --> MappingModelBuilder : Uses
49+
AdminApiMappingBuilder --> IWireMockAdminApi : Uses
50+
51+
IResourceWithServiceDiscovery --> IResourceWithEndpoints : Inherits
52+
WireMockServerLifecycleHook --> IDistributedApplicationLifecycleHook : Implements
53+
WireMockServerLifecycleHook --> ResourceLoggerService : Uses
54+
WireMockServerLifecycleHook --> DistributedApplicationModel : Uses
55+
WireMockServerLifecycleHook --> WireMockServerResource : Uses
56+
WireMockServerLifecycleHook --> IWireMockAdminApi : Uses
57+
58+
59+
```

0 commit comments

Comments
 (0)