首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSwagStudio和Swagger2.0x-子类型

NSwagStudio和Swagger2.0x-子类型
EN

Stack Overflow用户
提问于 2020-06-27 19:24:00
回答 1查看 167关注 0票数 1

我认为这是一个NSwag或NSwagStudio问题,但我还没有足够的经验来了解我是否使用错了,或者是NSwag中是否有bug,或者我正在使用的Swagger2.0文档是否有问题。

我使用NSwagStudio 13.6.1.0为生成一个C#客户端。表示order_search_request属性query的类型是一个没有属性的空类。但是Swagger声明了query的几个子类型,其中有些确实具有属性:

代码语言:javascript
复制
  "query": {
      "$ref": "#/definitions/query",
      "description": "The query to apply",
      "x-sub_types": {
          "nested_query": "#/definitions/nested_query",
          "filtered_query": "#/definitions/filtered_query",
          "text_query": "#/definitions/text_query",
          "match_all_query": "#/definitions/match_all_query",
          "term_query": "#/definitions/term_query",
          "bool_query": "#/definitions/bool_query"
      }
  }

起初,我假设这些x-sub_types应该作为Query的子类生成,而它们不是。但是根据请求主体应该包含的非摇摆文档,似乎Query应该有其中一个子类型,而不是其中之一:

代码语言:javascript
复制
{ 
   "query" :
   { 
      "text_query": { "fields": ["customer_email"], "search_phrase":"example@non.existing.com" }
   },
   "select" : "(**)",
   "sorts" : [{"field":"customer_name", "sort_order":"asc"}]
}

由于NSwag生成部分类,所以我可以自己向Query添加必要的字段。但这真的是最好的解决办法吗?我想知道是否有可能让NSwag在一开始就做正确的事情,或者Swagger是否错误地描述了API。另一个明显的可能性,特别是考虑到x-前缀,是x-sub_types只是Salesforce发明的一些不标准的东西。

EN

回答 1

Stack Overflow用户

发布于 2020-06-27 23:26:27

为了说明它的价值,手动将“子类型”属性添加到我自己生成的Query类的一部分中,会像预期的那样工作。不过,我还是不知道这是不是“答案”。可能有一种方法可以自定义NSwag来处理这个问题。(SalesforceServices.OCAPI.Shop是我给生成的客户机指定的包名。)

代码语言:javascript
复制
using Newtonsoft.Json;

namespace SalesforceServices.OCAPI.Shop
{
    public partial class Query
    {
        [JsonProperty("text_query", NullValueHandling = NullValueHandling.Ignore)]
        public Text_query TextQuery { get; set; }
        [JsonProperty("match_all_query", NullValueHandling = NullValueHandling.Ignore)]
        public Match_all_query MatchAllQuery { get; set; }
        // TODO all the query types!
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62614575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档