【问题标题】:Don't return model if it is null如果模型为空,则不返回模型
【发布时间】:2019-06-01 00:17:26
【问题描述】:

我想向 UI 返回一个 GraphQl 响应,我必须在其中根据响应启用或禁用特定功能。

我在这两种情况下都得到了响应,即如果找到值,则呈现正确的字符串并发送回响应,但是当未找到值时,将作为来自 kotlin 数据模型的响应发送 null .

data class FinalObject(
     val isEnableDisable : String? = null
)

GraphQl 的 Kotlin 类

@GraphQLDescription("Random string")
data class ActualClassForGraphQl(
     val finalObject: FinalObject
)

编写实际逻辑的 Kotlin 类

@Component
class ActualClassForLogic{
      fun isEnableDisable():FinalObject{
           if(true){
              return FinalObject("some string")
           }
           return FinalObject()
      }
}

预期结果:

不需要发送任何内容,即不需要在响应中填充键 FinalObject 本身,即需要向 UI 发送一个空的响应主体。

实际结果: 如果它进入“if”块,即成功场景

FinalObject{
     isEnableDisable:"some string"
}

如果它没有进入“if”块,即失败场景

FinalObject{
     isEnableDisable:null
}

【问题讨论】:

    标签: kotlin graphql


    【解决方案1】:

    除非我误解了你的问题,否则我认为这不是 GraphQL 规范的定义方式,它更多地来自客户端而不是服务器端在响应中显示什么而不是什么,如果客户端在查询中发送该字段(finalObject?),它无论什么值(非 null 时为 null)都应该返回,这就是合同 graphql 规范给用户的内容。

    【讨论】:

      猜你喜欢
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      • 2013-08-11
      • 1970-01-01
      相关资源
      最近更新 更多