如果模型为空,请不要返回

时间:2019-04-19 10:42:30

标签: kotlin graphql

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

在两种情况下我都得到响应,即,如果找到值,则呈现正确的字符串并将其发送回响应,但是,如果找不到值,则从kotlin数据模型发送空值作为响应

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
}

1 个答案:

答案 0 :(得分:0)

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