Graphql 邮递员,测试图ql响应

Graphql 邮递员,测试图ql响应,graphql,postman,Graphql,Postman,我有一个疑问: query SessionQuery { cliente { id clienteId rut porcentajeDeCompletitudDeInformacion fichaCliente { tipoPersona razonSocial } representantesLegales { edges { node { rutRepresen

我有一个疑问:

query SessionQuery {
  cliente {
    id
    clienteId
    rut
    porcentajeDeCompletitudDeInformacion
    fichaCliente {
      tipoPersona
      razonSocial
    }
    representantesLegales {
      edges {
        node {
          rutRepresentante
        }
      }
    }
    documentosRequeridos {
      edges {
        node {
          iDDocumento
          cargado
          nombreDocumento
          tipoDocumentoHQB
        }
      }
    }
  }
  usuario {
    id
    usuarioId
    email
    nombre
    rut
  }
}
我第一次通过Postman测试GraphQL,如下所示:

我收到此响应,我不理解错误消息:

{"data":{"cliente":{"id":"Q2xpZW50ZTow","clienteId":0,"rut":"XXX","porcentajeDeCompletitudDeInformacion":20,"fichaCliente":{"tipoPersona":2,"razonSocial":"ING. Y SISTEMAS BIZWARE  (Empresa Relacionada)"},"representantesLegales":{"edges":[{"node":{"rutRepresentante":null}}]},"documentosRequeridos":{"edges":[]}},"usuario":{"id":"VXN1YXJpbzoyMDI4","usuarioId":2028,"email":"XXXX@gmail.com","nombre":"XXXX","rut":"XXXX"}},"errors":[{"message":"GraphQL.ExecutionError: Cannot return null for non-null type. Field: rutRepresentante, Type: String!.\r\n   at GraphQL.Execution.ExecutionStrategy.ValidateNodeResult(ExecutionContext context, ExecutionNode node)\r\n   at GraphQL.Execution.ExecutionStrategy.ExecuteNodeAsync(ExecutionContext context, ExecutionNode node)","locations":[{"line":14,"column":11}],"path":["cliente","representantesLegales","edges","0","node","rutRepresentante"]}]}

我不知道这是什么意思。我的问题是,当我从JavaScript调用这个Graphql端点时,我的应用程序中有一个CORS问题,但我通过Postman检测到问题可能是这个,查询或其他东西被破坏了。任何想法,请,谢谢。

xadm的评论是正确的-在标准GraphQL模式中,感叹号表示该字段是必需的。对于查询检索的数据库记录,
rutRepresentante
字段很可能为空


或者从
字符串中删除感叹号
为了使字段为空,或填充数据库中
rutRepresentante
列(或键,如果未使用SQL…)的行,xadm的注释是正确的-在标准GraphQL模式中,感叹号表示需要该字段。对于查询检索的数据库记录,
rutRepresentante
字段很可能为空


或者从
字符串中删除感叹号
为了使字段可为空,或填充数据库中
rutRepresentante
列(或键,如果您没有使用SQL…)的行,API为
rutRepresentante
返回
null
-但是此类型/属性不能为空(在类型中定义为不可为空)抱歉,这在Graphql中是一个新的属性。我在模式中有这样的内容:
typerepresententelegaltype{apellidomaternorepresente:String!apellidopaternorepresente:String!idrepresente:Int!nombrepresentante:String!rutRepresentante:String!}
这是什么意思
String?这个表示不为空?其他类型在:String=null
API返回
null
for
rutRepresentante
-但此类型/属性不能为null(在类型中定义为不可为null)抱歉,在Graphql中有点新。我在模式中有这样的内容:
typerepresententelegaltype{apellidomaternorepresente:String!apellidopaternorepresente:String!idrepresente:Int!nombrepresentante:String!rutRepresentante:String!}
这是什么意思
String?这个表示不为空?其他类型在:String=null之后有
,谢谢。我试过了,现在Graphql响应在数据中没有错误,无论如何,响应总是200。CORS问题仍然存在,但至少我所问的错误已被修复。CORS问题可能是因为您尚未在服务器中列出客户端应用程序的域(可能是开发中的
localhost
)。在客户机上没有好办法绕过CORS……你必须告诉你的服务器哪些域可以接受来自哪个域的跨源请求。这取决于您在后端使用的技术堆栈。实际上,我还有一个关于CORS问题的问题,因为在后端的配置(IIS上的NetCore)中,我将访问控制允许源代码:“*”和几乎所有我已经消失的CORS问题,除了GraphQL的问题。我在从JavaScript获取调用时遇到了一些CORS问题,但我在CORS被修复之前说过的规则是Hanks。我试过了,现在Graphql响应在数据中没有错误,无论如何,响应总是200。CORS问题仍然存在,但至少我所问的错误已被修复。CORS问题可能是因为您尚未在服务器中列出客户端应用程序的域(可能是开发中的
localhost
)。在客户机上没有好办法绕过CORS……你必须告诉你的服务器哪些域可以接受来自哪个域的跨源请求。这取决于您在后端使用的技术堆栈。实际上,我还有一个关于CORS问题的问题,因为在后端的配置(IIS上的NetCore)中,我将访问控制允许源代码:“*”和几乎所有我已经消失的CORS问题,除了GraphQL的问题。我在从JavaScript获取调用时遇到了一些CORS问题,但是我在CORS被修复之前说过的规则