当前位置: 首页 > 知识库问答 >
问题:

使用图形检查远程图形endpoint

葛炯
2023-03-14

有一个我不拥有的 graphql endpoint,但它提供了一个公共endpoint。我希望使用 graphiql 来反省它。我对 graphql 完全陌生,所以我什至不知道这种事情是否可能。

我有一个在本地运行的图形示例,并且正在修改server.js以尝试使其工作。在其他SO线程上四处走动已经让我走到了这一步……

var introspectionQuery = require('graphql/utilities').introspectionQuery;
var request            = require('sync-request');

var url = 'http://endpoint.com/graphql';
var response = request('POST', url, { qs: { query: introspectionQuery } } );
var schema = JSON.parse(response.body.toString('utf-8'));

// herein lies the rub
schema = new GraphQLSchema(schema.data.__schema);

var app = express();
app.use(express.static(__dirname));
app.use('/graphql', graphqlHTTP(() => ({
  schema: schema,
})));
app.listen(8080);

这段代码在 GraphQLSchema 构造函数中爆炸,试图从该内省查询中创建一个模式。显然,这不是正确的方法吗?

共有2个答案

何建中
2023-03-14

我正在尝试使用PHP GraphQL库进行此操作。我在尝试上述 CORS(跨源安全内容)时遇到了很多问题。

然后我发现GraphIQL可以作为Chrome应用程序使用。这解决了我的需要,所以在这里注明,以防对遇到这个问题的其他人有用。您不需要编写任何代码就可以让GraphIQL与远程endpoint一起工作。

宇文修文
2023-03-14

您想从自省结果中构建架构的是BuildClient

var buildClientSchema  = require('graphql/utilities').buildClientSchema;
var introspectionQuery = require('graphql/utilities').introspectionQuery;
var request            = require('sync-request');

var response = request('POST', url, { qs: { query: introspectionQuery } });
// Assuming we're waiting for the above request to finish (await maybe)
var introspectionResult = JSON.parse(response.body.toString('utf-8'));
var schema = buildClientSchema(introspectionResult);

您可以用另外两种方法构建模式:< code>buildASTSchema和直接实例化< code>GraphQLSchema,这就是您正在尝试的方法。< code>GraphQLSchema构造函数接受< code>GraphQLSchemaConfig类型的对象:

type GraphQLSchemaConfig = {
  query: GraphQLObjectType;
  mutation?: ?GraphQLObjectType;
  subscription?: ?GraphQLObjectType;
  types?: ?Array<GraphQLNamedType>;
  directives?: ?Array<GraphQLDirective>;
};

这两个实用程序模块分别通过使用< code>buildClientSchema或< code>buildASTSchema,为从自检查询结果或解析的IDL类型定义构建模式提供了更简单的方法。更多信息请参考graphql-js/src/utilities目录中的模块。

 类似资料:
  • 问题内容: 我正在尝试使用命令在远程计算机上生成图形。但是我得到了这样的错误: 如何正确保存数字? 问题答案: 默认情况下,matplotlib将使用类似后端的内容。这要求X服务器正在运行。 尽管您只能使用X转发,但是随着matplotlib尝试与远程X服务器连接时,会有明显的延迟。如果您不需要与图进行交互,通常最好完全避免X连接,从而加快处理速度。 如果要完全不需要X服务器来进行绘图,请改用 后

  • 图形概述 理解图形系统是深入游戏开发的关键。本章详细介绍 Unity 的图形特性,例如光照和渲染。

  • 问题内容: 我正在为特定实验构建一类绘图工具。我目前有两种绘图方法,一种使用imshow()的静态绘图,一种也使用imshow()的“电影”格式。 这两种方法以及任何将来的方法都将获得与我可能编写的任何特定绘图方法相同的参数。使用plot类时,我在配置对象中具有所有这些参数。 我不想在每种绘图方法中都重写代码。我想初始化一个将设置以下args的对象(我认为是AxesImage):vmin,vmax

  • 图形 Unity 提供了惊人的视觉保真度、渲染力和临场感。 Unity 为你的游戏提供符合直觉的实时全局光照和基于物理的着色器。从白天,到晚上霓虹灯的绚丽辉光;从光晕,到昏暗的午夜街道和阴暗的隧道 — 支持在任意平台上创建令人着迷和回味无穷的游戏。 本章将介绍光照、摄像机、材质、着色、纹理、粒子效果和视觉效果等内容。 另外,请参阅 图形知识库。 在教程部分还有许多有用的图形教程。 相关教程:图形

  • 在你的文件中最常见的图层应该就是图形了。Sketch 提供了多种不同的基本图形供你选择:圆形,矩形,星型等等。这几个图形中会有几个有趣的额外选项,比如星型和圆角矩形。 你只需单击工具栏中的 添加(Insert)>图形(Shape) 按钮,选择一个图形,便可以开始创作。当你的鼠标在画布上拖拽的时候,Sketch 会提示你这个图形的大小,松开鼠标,便会成功添加图形,右边的检查器上也会立即显示出这个图形

  • 本篇教程从一些基础开始,描述了如何使用 LCUI 提供的图形 API 来绘制 2D 图形。教程中提供的例子,会让你明白可以用图形 API 做什么,也会提供一些代码片段来帮助你开始构建自己的内容。 图形对象 图形对象是一个记录了位图的像素数据和宽高等信息的对象,在 LCUI 中它被定义为 LCUI_Graph 结构体类型,与之相关的函数都以 Graph_ 前缀命名。为了书写方便,在下文中我们将用“图