共享类与swagger生成的类 [英] Share classes vs. swagger generated classes

查看:29
本文介绍了共享类与swagger生成的类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含三个项目的ASP.NET/Blazor VS解决方案

  1. 共享
  2. ASP.NET核心API
  3. Blazor Web程序集。

我在Shared项目中创建了一些类,并从其他两个项目中引用了Shared项目。到目前为止一切正常。

然后,我使用Swagger UI为我生成存根,以便我可以与远程API交互。Swagger UI创建了Service.csContract.cs,非常棒。问题是Contract.cs重新定义了我在它自己的命名空间下的共享项目中声明的类。现在我不知道该用哪种,该进口哪种。如果我使用自己的Shared类,那么如果不强制转换,我将无法在Service.cs中使用swagger中的API。如果我修改Contract.cs,则下次运行Swagger UI时,我所做的所有更改都将丢失。

这还导致有两个DBContext-1)我定义的那个和2)swagger定义的那个。现在,每当我想要做一些事情时,我还必须在命令行上使用--context参数来指定要使用哪个DBContext

问题是,我如何使用自己的类,同时使用swagger来简化与远程API的对话?这里的最佳实践是什么?

推荐答案

如果要使用swagger(客户端),则不应引用共享项目。大摇大摆的小爪子就是你得到/想要的。

但是在Blazor里你不需要Swagger。在Shared中共享DTO类是Blazor的亮点之一。

如果您需要有关客户端上的样板内容的帮助,那么有类似refit这样的选项。有关此信息,请参阅blog

这篇关于共享类与swagger生成的类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆