added two samples
This commit is contained in:
20
wolverine-nats/WolverineAndNats/ApiOne/ApiOne.csproj
Normal file
20
wolverine-nats/WolverineAndNats/ApiOne/ApiOne.csproj
Normal file
@@ -0,0 +1,20 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Messages\Messages.csproj" />
|
||||
<ProjectReference Include="..\ServiceDefaults\ServiceDefaults.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Aspire.Npgsql" Version="13.1.0" />
|
||||
<PackageReference Include="WolverineFx.Marten" Version="5.13.0" />
|
||||
<PackageReference Include="WolverineFx.Nats" Version="5.13.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,44 @@
|
||||
using Messages;
|
||||
using Wolverine;
|
||||
|
||||
namespace ApiOne.Endpoints;
|
||||
|
||||
public static class Extensions
|
||||
{
|
||||
extension(IEndpointRouteBuilder endpoints)
|
||||
{
|
||||
public IEndpointRouteBuilder MapApiOneEndpoints()
|
||||
{
|
||||
endpoints.MapPost("/messages", async (SendMessage request, IMessageBus messageBus) =>
|
||||
{
|
||||
await messageBus.PublishAsync(request);
|
||||
return Results.Accepted();
|
||||
});
|
||||
|
||||
endpoints.MapPost("/math", async (AddThem request, IMessageBus bus) =>
|
||||
{
|
||||
var result = await bus.InvokeAsync<NumbersAdded>(request);
|
||||
return Results.Ok(result);
|
||||
});
|
||||
|
||||
endpoints.MapPost("/users", async (UserCreate user, IMessageBus bus) =>
|
||||
{
|
||||
var doc = new UserDocument(Guid.NewGuid(), user.Name);
|
||||
await bus.PublishAsync(doc);
|
||||
return Results.Accepted();
|
||||
});
|
||||
endpoints.MapPut("/users/{id:guid}/name", async (Guid id, UserCreate user, IMessageBus bus) =>
|
||||
{
|
||||
var nameChanged = new UserNameChanged(id, user.Name);
|
||||
await bus.PublishAsync(nameChanged);
|
||||
return Results.Accepted();
|
||||
});
|
||||
|
||||
return endpoints;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public record UserCreate(string Name);
|
||||
|
||||
|
||||
56
wolverine-nats/WolverineAndNats/ApiOne/Program.cs
Normal file
56
wolverine-nats/WolverineAndNats/ApiOne/Program.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using ApiOne.Endpoints;
|
||||
using Marten;
|
||||
using Messages;
|
||||
using Wolverine;
|
||||
using Wolverine.Marten;
|
||||
using Wolverine.Nats;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
builder.AddServiceDefaults();
|
||||
builder.AddNpgsqlDataSource("db-one");
|
||||
|
||||
builder.UseWolverine(options =>
|
||||
{
|
||||
options.UseNats(builder.Configuration.GetConnectionString("nats") ??
|
||||
throw new Exception("No NATS connection string configured"))
|
||||
.AutoProvision()
|
||||
.UseJetStream(js =>
|
||||
{
|
||||
js.MaxDeliver = 5;
|
||||
js.AckWait = TimeSpan.FromSeconds(30);
|
||||
})
|
||||
|
||||
.DefineStream("PEOPLE", stream =>
|
||||
stream.WithSubject("people.>")
|
||||
.WithLimits(maxMessages: 5_000, maxAge: TimeSpan.FromDays(5))
|
||||
//.WithReplicas(3)
|
||||
.EnableScheduledDelivery());
|
||||
|
||||
|
||||
|
||||
options.PublishMessage<SendMessage>()
|
||||
.ToNatsSubject("messages-sent");
|
||||
|
||||
options.PublishMessage<UserDocument>()
|
||||
.ToNatsSubject("people.created");
|
||||
options.PublishMessage<UserNameChanged>()
|
||||
.ToNatsSubject("people.name-changed");
|
||||
|
||||
options.PublishMessage<AddThem>()
|
||||
.ToNatsSubject("math.add");
|
||||
|
||||
});
|
||||
|
||||
builder.Services.AddMarten(config =>
|
||||
{
|
||||
|
||||
}).UseLightweightSessions()
|
||||
.IntegrateWithWolverine()
|
||||
.UseNpgsqlDataSource();
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
app.MapGet("/", () => "Hello World!");
|
||||
app.MapApiOneEndpoints();
|
||||
app.MapDefaultEndpoints();
|
||||
app.Run();
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/launchsettings.json",
|
||||
"profiles": {
|
||||
|
||||
"https": {
|
||||
"commandName": "Project",
|
||||
"dotnetRunMessages": true,
|
||||
"launchBrowser": false,
|
||||
"applicationUrl": "https://apione.dev.localhost:7131",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
}
|
||||
}
|
||||
10
wolverine-nats/WolverineAndNats/ApiOne/appsettings.json
Normal file
10
wolverine-nats/WolverineAndNats/ApiOne/appsettings.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning",
|
||||
"Npgsql": "Warning"
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/ApiOne
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/ApiOne
Executable file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net10.0",
|
||||
"frameworks": [
|
||||
{
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "10.0.0"
|
||||
},
|
||||
{
|
||||
"name": "Microsoft.AspNetCore.App",
|
||||
"version": "10.0.0"
|
||||
}
|
||||
],
|
||||
"configProperties": {
|
||||
"System.GC.Server": true,
|
||||
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":1,"ManifestType":"Build","Endpoints":[]}
|
||||
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Aspire.Npgsql.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Aspire.Npgsql.dll
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/FSharp.Core.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/FSharp.Core.dll
Executable file
Binary file not shown.
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/HealthChecks.NpgSql.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/HealthChecks.NpgSql.dll
Executable file
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Humanizer.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Humanizer.dll
Executable file
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/JasperFx.Events.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/JasperFx.Events.dll
Executable file
Binary file not shown.
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/JasperFx.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/JasperFx.dll
Executable file
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Marten.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Marten.dll
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/NATS.Client.Core.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/NATS.Client.Core.dll
Executable file
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/NATS.Client.Hosting.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/NATS.Client.Hosting.dll
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/NATS.Net.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/NATS.Net.dll
Executable file
Binary file not shown.
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/NetTopologySuite.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/NetTopologySuite.dll
Executable file
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/NewId.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/NewId.dll
Executable file
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Newtonsoft.Json.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Newtonsoft.Json.dll
Executable file
Binary file not shown.
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Npgsql.Json.NET.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Npgsql.Json.NET.dll
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Npgsql.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Npgsql.dll
Executable file
Binary file not shown.
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/OpenTelemetry.Api.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/OpenTelemetry.Api.dll
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/OpenTelemetry.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/OpenTelemetry.dll
Executable file
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Polly.Core.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Polly.Core.dll
Executable file
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Polly.Extensions.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Polly.Extensions.dll
Executable file
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Polly.RateLimiting.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Polly.RateLimiting.dll
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Spectre.Console.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Spectre.Console.dll
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Weasel.Core.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Weasel.Core.dll
Executable file
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Weasel.Postgresql.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Weasel.Postgresql.dll
Executable file
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Wolverine.Marten.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Wolverine.Marten.dll
Executable file
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Wolverine.Nats.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Wolverine.Nats.dll
Executable file
Binary file not shown.
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Wolverine.RDBMS.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Wolverine.RDBMS.dll
Executable file
Binary file not shown.
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Wolverine.dll
Executable file
BIN
wolverine-nats/WolverineAndNats/ApiOne/bin/Debug/net10.0/Wolverine.dll
Executable file
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning",
|
||||
"Npgsql": "Warning"
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user