0

我有一个在某个端口上运行的 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 服务器的请求。

4

0 回答 0