我有一个在某个端口上运行的 API 网关。有一个 API 端点:fetch/products/
. 来自此 API 端点的带有一些请求参数的请求需要发送到 graphql 服务器。如何将这些 JSON 请求参数动态发送到 graphql?
Server1.js
const typeDefs = `
type Query {getproducts(p1: String!,p2: String!,p3: String!,p4: String!,p5:String!
}
`}
const resolvers = {
Query: {
getproducts: async (_, {p1,p2,p3,p4,p5}) => {
const response = await fetch(`http://service1.com/fetch/products/?p1=${p1}&p2=${p2}&p3=${p3}`);
const data = await response.json();
const response2 = await fetch(`http://service2.com/fetch/items/?p1=${p1}&p4=${p4}&p5=${p5}`);
const data = await response2.json();
return response1+response2;
}}};
const server = new ApolloServer({ typeDefs, resolvers });
server.listen({ port: 1000});
api网关服务器文件
API-Gateway 的请求来自不同的端口:
/fetch/products/?p1=value1&p2=value2&p3=value3&p4=value4&p5=value5&p6=value6
#如何以这种形式将此请求发送到graphql服务器:
http://localhost:1000/graphql/?query={getproducts(p1:"p1",p2:"p2",p3:"p3",p4:"p4",p5:"p5")}
当我从 API-request 和 stringyfy 创建对象时,我也得到了字符串中的键。
http://localhost:1000/graphql/?query={getproducts("p1":"p1","p2":"p2","p3":"p3","p4":"p4","p5":"p5")}
如何处理?或其他方式来处理来自 API-Gateway 到带有请求参数的 graphql 服务器的请求。