聚合 OpenApi 文档

视频免费34:00超过 2 年前

每个微服务都有自己的 OpenApi 文档,但是在实际开发中,我们更希望能够将所有微服务的 OpenApi 文档聚合到一起,以便于查看和调试,微服务都是基于 Aspire 框架开发的,所以我们可以使用 Aspire 框架提供的服务发现功能来自动聚合所有微服务的 OpenApi 文档。

正在加载视频…

聚合 OpenApi 文档

每个微服务都有自己的 OpenApi 文档,但是在实际开发中,我们更希望能够将所有微服务的 OpenApi 文档聚合到一起,以便于查看和调试,微服务都是基于 Aspire 框架开发的,所以我们可以使用 Aspire 框架提供的服务发现功能来自动聚合所有微服务的 OpenApi 文档。

使用 Aspire 服务发现自动配置 OpenApi 文档

public class OpenApiConfigureOptions() : IConfigureOptions<SwaggerUIOptions>
csharp
builder.Services.AddTransient<IConfigureOptions<SwaggerUIOptions>, OpenApiConfigureOptions>();
csharp

定制 OpenApi 文档样式

在 Resource/OpenApi 文件夹下创建 Custom.css 文件。

.swagger-ui .topbar-wrapper img {
    content: url('https://test.com/logo.svg');
}
 
.swagger-ui .topbar-wrapper .link::after {
    margin-left: 0.5rem;
    content: "HelloWorld";
}
css

关联 CSS 文件到 OpenApi 文档

public static class OpenApiExtensions
{
    public static IServiceCollection AddOpenApi(this IServiceCollection)
    {
       services.Configure<SwaggerUIOptions>(options =>
       {
           options.DocumentTitle = Assembly.GetExecutingAssembly().GetName().Name;
           options.InjectStylesheet("/ServiceDefaults/Resources/OpenApi/Custom.css");
       });
    }
}
csharp
public static IApplicationBuilder UseOpenApi(this IApplicationBuilder app)
{
    // Configure the HTTP request pipeline.
    app.UseSwagger(apiConfigureOptions)
    app.Map("/ServiceDefaults", appBuilder => appBuilder.UseStaticFiles(new StaticFileOptions
    {
        FileProvider = new EmbeddedFileProvider(Assembly.GetExecutingAssembly())
    }))
 
    return app;
}
csharp

接着看

视频零度新版框架搭建系列视频教程订阅

构建可靠的事务性发件箱模式

事务性发件箱模式确保将事件保存在数据存储中,然后再最终推送到消息代理。 如果业务对象和相应的事件保存在同一数据库事务中,则保证不会丢失任何数据。 所有内容都将被提交,或在出错时所有内容回滚。 为了最终发布事件,其他服务或工作进程会在发件箱表中查询未处理项,发布这些事件,并将其标记为已处理。 此模式可确保创建或修改业务对象后不会丢失事件。

1:01:15超过 1 年前
视频零度新版框架搭建系列视频教程订阅

自动迁移和数据库初始化

EF Core中数据库迁移与初始化的核心概念与实用技巧。内容包括生成与应用迁移脚本、EnsureCreatedAsync与MigrateAsync的使用及冲突解决、通过内部服务实现优雅的自动迁移、EF Core 9.0推荐的异步种子数据初始化方法,以及利用IHostedService或BackgroundService实现耗时操作的异步数据库初始化。通过本课程,开发者将掌握高效管理数据库生命周期的最佳实践,提升项目开发效率与质量。

57:00超过 1 年前
视频零度新版框架搭建系列视频教程订阅

重构代码并抽取基础构建库

本次重构优化了事件总线架构,提升了系统的扩展性和灵活性。新增支持包和多个项目,增强了事件处理能力。通过实现基于 Dapr 和 RabbitMQ 的事件总线,改进了消息传递效率。加入了分布式锁功能,确保并发场景下的数据一致性。

38:00超过 1 年前
视频零度新版框架搭建系列视频教程订阅

在 Aspire 中集成 PostgreSQL 数据库

在 Host 项目中添加 PostgreSQL 数据库,在最终的应用中引用 PostgreSQL 数据库,添加 PostgreSQL pgAdmin 资源,添加 PostgreSQL pgWeb 资源。

35:00超过 1 年前

搜索

搜索分类、视频或标签