能否创建可在GraphQL外部使用的独立Endpoint?
答:完全可以在GraphQL环境外调用Endpoint
GraphQL的Endpoint本质就是一个标准的HTTP接口,根本不需要依赖GraphQL Playground——Playground只是辅助开发的可视化调试工具,不是调用接口的必要条件。不管是用curl、前端AJAX请求,还是任何HTTP客户端,都能直接调用它获取数据。
以你提到的SpaceX GraphQL Endpoint为例,这里给你两个具体的调用示例:
1. 使用POST请求(最常用方式)
在终端执行以下curl命令,就能获取Falcon 9火箭的基本信息:
curl -X POST \ https://api.spacex.land/graphql/ \ -H "Content-Type: application/json" \ -d '{ "query": "query { rocket(id: \"falcon9\") { name description height { meters } } }" }'
这个命令里:
-X POST指定请求方法为POST-H设置请求头为application/json(GraphQL要求请求体为JSON格式)-d后是请求体,包含你要执行的GraphQL查询语句
2. 使用GET请求(适合短查询)
如果你的查询语句较短,也可以用GET请求,把查询作为URL参数传递(注意要对查询字符串做URL编码):
curl "https://api.spacex.land/graphql/?query=query%20%7B%20rocket(id%3A%20%22falcon9%22)%20%7B%20name%20description%20height%20%7B%20meters%20%7D%20%7D%20%7D"
你在UI里实现的“选择数据点”功能,本质上也是前端代码通过类似的HTTP请求调用这个Endpoint——只是前端会根据用户选择的字段动态拼接GraphQL查询语句,再发送请求获取结果,和curl的调用逻辑完全一致。
内容的提问来源于stack exchange,提问作者Dar2814
相关产品推荐
相关产品推荐

