GraphQL/GraphCool 为啥坐标不适用于 FLOAT?

Posted

技术标签:

【中文标题】GraphQL/GraphCool 为啥坐标不适用于 FLOAT?【英文标题】:GraphQL/GraphCool Why do coordinates don't work with FLOAT?GraphQL/GraphCool 为什么坐标不适用于 FLOAT? 【发布时间】:2018-07-21 10:17:17 【问题描述】:

我目前正在处理包装 RestAPI 的 GraphQL/GraphCool,但是当我使用 Float 编写解析器以将纬度和经度提取为浮点数时,我收到以下错误:

"code": 5004,
      "message": "Returned JSON Object does not match the GraphQL type. The field 'latitud' should be of type Float \n\n Json: 
\n  \"id\": \"6115\",\n  \"nombre\": \"ABARROTES LA SOLEDAD\",\n  \"latitud\": \"21.85779823\",\n  \"longitud\": \"-102.28161261\"\n\n\n"

如果我使用String没有问题!

解析器 SDL

type AbarrotesPayload 
  id: ID!
  nombre: String!
  latitud: Float!
  longitud: Float!


extend type Query 
  feed(distancia: Int!): [AbarrotesPayload!]!

解析器功能

"use strict";

const fetch = require("node-fetch");
const API_TOKEN = "d3bfd48a-bced-4a58-a58b-4094da934cf1";

module.exports = event => 
  const distancia = event.data.distancia;
  return fetch(getRestEndpoint(distancia, API_TOKEN))
    .then(response => response.json())
    .then(data => 
      const abarrotes = [];
      for (let item in data) 
        abarrotes.push(
          id: data[item].Id,
          nombre: data[item].Nombre,
          latitud: data[item].Latitud,
          longitud: data[item].Longitud
        );
      
      console.log(abarrotes);
      return  data: abarrotes ;
    );
;

function getRestEndpoint(query) 
  return `http://www3.inegi.org.mx/sistemas/api/denue/v1/consulta/buscar/abarrotes/21.85717833,-102.28487238/$query/$API_TOKEN`;

我的查询如下:

query 
  feed(distancia: 400) 
    id
    nombre
    latitud
    longitud
  

顺便说一句,我在graph.cool平台上工作!

【问题讨论】:

【参考方案1】:

这与 GraphQL/GraphCool 无关,我只需要将接收到的值作为字符串 parseFloat(),然后将其推送到数组中。

latitud: parseFloat(data[item].Latitud),
longitud: parseFloat(data[item].Longitud)

【讨论】:

以上是关于GraphQL/GraphCool 为啥坐标不适用于 FLOAT?的主要内容,如果未能解决你的问题,请参考以下文章

graphql/graphcool:如何编写一个连接一对一和一对多关系的突变

GraphQL/Graph.cool 查询过滤嵌套关系

GraphQL、Redux、React。间隔保存状态

为啥使用 glTranslatef?为啥不直接更改渲染坐标?

为啥在84坐标系下,超图软件可以无需投影就可以计算面积,而arcgis却不可以

echart 横坐标标签倾斜显示实现不了,横坐标加粗字体都可以设置,但是不可以倾斜,为啥?