当前位置: 首页 > 知识库问答 >
问题:

swagger spec API net core中客户端生成代码的抽象类

孙修德
2023-03-14

我对api上的错误基类有问题。我使用此选项查看它在文档中的工作。但是当我使用swagger json在https://editor.swagger.io它生成3个类,BaseException(抽象)、Error和Warning。当我使用相应的代码时,在我的响应中会出现一个BaseException列表,但总是向我显示仅基本的信息

exceptions:[
    {
      "severity": "Warning",
      "message": "warning message"
    },
    {
      "severity": "Error",
      "message": "testing"
    }
]

如果我把它抽象成

[DataContract]
    [JsonConverter(typeof(JsonSubtypes), "BaseException")]
    [JsonSubtypes.KnownSubType(typeof(ErrorData), "Error")]
    [JsonSubtypes.KnownSubType(typeof(WarningData), "Warning")]
    public abstract class BaseException : IEquatable<BaseException>
    {

提出了另一个例外:

Could not create an instance of type Api.Test.Client.Model.BaseException. Type is an interface or abstract class and cannot be instantiated. Path 'severity', line 488, position 17. 

我试图维护生成的类结构,但没有运气,因为总是返回BaseException内容,并且类的鉴别器为空(我不知道为什么)

我该如何解决这个问题?谢谢!

共有1个答案

商弘义
2023-03-14

JsonConverter属性的第二个参数应该是鉴别器字段,在JSON示例中,它应该是严重性,因此BaseException类应该这样定义:

[DataContract]
[JsonConverter(typeof(JsonSubtypes), "severity")]
[JsonSubtypes.KnownSubType(typeof(ErrorData), "Error")]
[JsonSubtypes.KnownSubType(typeof(WarningData), "Warning")]
public abstract class BaseException : IEquatable<BaseException>
{

请参阅以下位置的文档:https://manuc66.github.io/JsonSubTypes/

 类似资料:
  • 我正在尝试使用Axis2构建的web服务,因此我遵循以下示例创建客户机代码。 这个错误的原因是什么?

  • 问题内容: 我想基于其api实现Google地图。我想添加一个基于坐标的路径。因此,我从模型中获取了坐标,并希望在对象上进行迭代以用此点填充地图。在我的Jade模板中,我包含api js代码,如下所示: 问题是:玉呈现此片段 就像在jade模板源中一样…-如果不被解析!有任何想法吗? 谢谢! 问题答案: 整个脚本标签(在其下缩进的所有内容)将通过原始文件传递,而无需进一步解析。Jade不会HTML

  • 给出了什么: 我使用Hibernate代码生成生成我的模型类(Hibernate工具 4) 我想要为每个数据库表提供一个抽象基类,以及一个具体的扩展 基类应包含所有数据库字段(获取/设置) 具体类应从基层开始延伸,对于跨站字段应为空 我用阿帕奇·马文处理我的图书馆 我有一个爪哇配置的SpringMVC环境 我听说您可以覆盖Hibernate工具JAR中的Freemarker模板。但是当我使用Mav

  • Java import java.io.IOException; import java.net.URLEncoder; import java.security.MessageDigest; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import jav

  • 我的设想如下。 我有一个swagger. json,例如:http://petstore.swagger.io/v2/swagger.json我想为上面的REST API使用生成的java客户端,例如: 扩展输出:<code>cica</code>,新宠物根据REST API实现进行存储。 我已经使用以下命令成功地为petstore生成了服务器存根: 但是这个 maven 项目代码是一个服务器代码

  • 问题内容: 我的情况如下。 我有一个大张旗鼓的.json例如:http : //petstore.swagger.io/v2/swagger.json 我想将生成的Java客户端用于上述REST API,例如: 扩展的输出:新宠物根据REST API的实现进行存储。 我已经使用以下命令成功为petstore生成了服务器存根: 但是此Maven项目代码是服务器代码。它具有in的注释,并且还具有。 我