增加 sse服务端测试
This commit is contained in:
1 parent
fe87aece4e
commit
d3488c98f5
10 files changed
+2009
No files matched your search
@@ -0,0 +1,104 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using Microsoft.OpenApi.Models;
|
||||
using OrderSupportTicket.TestServer;
|
||||
using OrderSupportTicket.TestServer.Contracts;
|
||||
using OrderSupportTicket.TestServer.Data;
|
||||
using OrderSupportTicket.TestServer.Endpoints;
|
||||
using OrderSupportTicket.TestServer.Services;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
builder.Services.AddSingleton<TicketEventHub>();
|
||||
builder.Services.AddSingleton<InMemoryTicketStore>();
|
||||
builder.Services.AddCors(options =>
|
||||
{
|
||||
options.AddDefaultPolicy(policy => policy
|
||||
.AllowAnyOrigin()
|
||||
.AllowAnyHeader()
|
||||
.AllowAnyMethod());
|
||||
});
|
||||
builder.Services.ConfigureHttpJsonOptions(options =>
|
||||
{
|
||||
options.SerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.Never;
|
||||
});
|
||||
builder.Services.AddEndpointsApiExplorer();
|
||||
builder.Services.AddSwaggerGen(options =>
|
||||
{
|
||||
options.SwaggerDoc("v1", new OpenApiInfo
|
||||
{
|
||||
Title = "OrderSupportTicket 测试服务端",
|
||||
Version = "v1",
|
||||
Description = "纯内存实现客户工单 API v2;重启服务后数据恢复为初始种子数据。"
|
||||
});
|
||||
});
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
app.UseCors();
|
||||
|
||||
app.Use(async (context, next) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
await next();
|
||||
}
|
||||
catch (ApiException exception)
|
||||
{
|
||||
if (context.Response.HasStarted)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
|
||||
context.Response.Clear();
|
||||
context.Response.StatusCode = exception.StatusCode;
|
||||
context.Response.ContentType = "application/json; charset=utf-8";
|
||||
await context.Response.WriteAsJsonAsync(new ApiErrorResponse
|
||||
{
|
||||
Success = false,
|
||||
Message = exception.Message,
|
||||
Error = exception.Message,
|
||||
Code = exception.Code
|
||||
});
|
||||
}
|
||||
catch (BadHttpRequestException exception)
|
||||
{
|
||||
if (context.Response.HasStarted)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
|
||||
context.Response.Clear();
|
||||
context.Response.StatusCode = StatusCodes.Status400BadRequest;
|
||||
context.Response.ContentType = "application/json; charset=utf-8";
|
||||
await context.Response.WriteAsJsonAsync(new ApiErrorResponse
|
||||
{
|
||||
Success = false,
|
||||
Message = exception.Message,
|
||||
Error = exception.Message,
|
||||
Code = "bad_request"
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
app.UseDefaultFiles();
|
||||
app.UseStaticFiles();
|
||||
app.UseSwagger();
|
||||
app.UseSwaggerUI(options =>
|
||||
{
|
||||
options.SwaggerEndpoint("/swagger/v1/swagger.json", "OrderSupportTicket Test API v1");
|
||||
options.DocumentTitle = "OrderSupportTicket 测试 API";
|
||||
});
|
||||
|
||||
app.MapGet("/health", () => Results.Ok(new
|
||||
{
|
||||
success = true,
|
||||
service = "OrderSupportTicket.TestServer",
|
||||
storage = "in-memory",
|
||||
utcNow = DateTimeOffset.UtcNow.ToString("O")
|
||||
}));
|
||||
|
||||
app.MapTicketApiEndpoints();
|
||||
|
||||
app.Run();
|
||||
|
||||
public partial class Program { }
|
||||
Reference in new issue
Block a user