Skip to main content

问题解决:跑通GraphQL

· 4 min read
CheverJohn

讲真为什么我会遇到这一块的问题呢?主要还是不熟悉开发流程。 虽然我已经安装好了APISIX,且APISIX的基本内容我都有所了解了。 可是在我实操过程中,还是遇到了很多问题,当然最终发现其实都是基本环境没做好(没有上游服务器端口应该算是基本环境吧?)

开干!

淦,拖了好久了,开始!——2022年2月13日

其实就是给 APISIX 的上游( upstream )添加一个服务器,这里边讨巧选择了 OpenResty。

首先我们已经按照 APISIX 的前置教程安装好了 OpenResty 了,这个必须先确定下来。

安装命令如下:

# 添加 OpenResty 源
sudo yum install yum-utils
sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo

# 安装 OpenResty 和 编译工具
sudo yum install -y openresty curl git gcc openresty-openssl111-devel unzip pcre pcre-devel

# 安装 LuaRocks
curl https://raw.githubusercontent.com/apache/apisix/master/utils/linux-install-luarocks.sh -sL | bash -

然后这边再强化一下观念,安装之前本地的代理呀、基本软件(如 git、gcc、unzip等)都要先配置好!

然后我们本地的 OpenResty 的地址可以通过以下命令找回:

OpenResty 的位置

开始配置

跟配置 NGINX 一样

cd /usr/local/openresty/nginx/conf/vhost/1980.conf

首先你先在 conf 文件夹里创建 vhost 文件夹,然后在 /usr/local/openresty/nginx/conf/nginx.conf 文件最下面添加。

添加位置如图

NGINX 文件配置

然后添加如下内容

server {
listen 1980;
access_log logs/access-1980.log main;
error_log logs/error.log;
location / {
content_by_lua_block {
ngx.header["Content-Type"] = "text/html"
local headers = ngx.req.get_headers()
ngx.say("---Headers")
for k, v in pairs(headers) do
ngx.say(k .. ":" .. v)
end

local args = ngx.req.get_uri_args()
ngx.say("---Args")
for k, v in pairs(args) do
ngx.say(k .. ":" .. v)
end

ngx.say("---URI")
ngx.say(ngx.var.uri)

ngx.say("---Service Node")
ngx.say("Ubuntu-DEV-1980")
}
}
}

如图 1980 配置文件内容以及文件树

然后就直接

openresty

启动 1980 服务器即可。

可以看到后端端口,基本上应该打开的都打开咯!

所有端口

来一套基本操作

进行一套基本操作,来试试 APISIX 哈

使用 GraphQL 的配置请求说明问题

命令来自于下面的链接:https://www.cheverjohn.xyz/blog/%E5%9F%BA%E7%A1%80%E5%91%BD%E4%BB%A4_graphql%E5%9C%A8APISIX%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8

实现配置 GraphQL 在 APISIX 中

配置

然后发出请求

请求

如此以来,我就配置好了我的一系列测试,新春快乐!