首页 > 解决方案 > 在服务之间发送参数 graphql apollo federation

问题描述

我正在寻找一些关于服务之间的参数和 resolveReference 的文档。实际上,我有类似的东西:

服务 A 类型定义

type Query {
            orderSummary(storeId: ID!, orderSummaryFilterInput: OrderSummaryFilterInput): OrderSummary
        }
        ...
        extend type OrderSummary @key(fields: "storeId") {
            storeId: String! @external
        }

        input OrderSummaryFilterInput {
            beginDate: Date
            endDate: Date
        }

解析器服务 A

Query: {
    orderSummary: (_, { storeId, orderSummaryFilterInput } ) => {

        console.log("storeId", storeId); storeId OK
        console.log("orderSummaryFilterInput", orderSummaryFilterInput); // get my filters here

        // send to service B, storeId value is sent, not orderSummaryFilterInput.
        return { __typename: "OrderSummary", storeId, orderSummaryFilterInput }; 
    },
},

类型定义服务 B

        type OrderSummary @key(fields: "storeId") {
            storeId: String!
            count: Int
            amount: Int
        }

解析器服务 B

OrderSummary: {
                __resolveReference(store, args) {
                    console.log("_", store); // get my storeID here but nothing more
                    console.log("args", args); // no orderSummaryFilter here

                },
            },

所以,我的问题是:如何将参数(OrderSummaryFilterInput)从服务 A 发送到服务 B,最重要的是,我想知道如何在服务 B 中获取参数?我在文档中没有找到任何关于此的内容。非常感谢

非常感谢

标签: graphqlapolloapollo-serverapollo-federation

解决方案


推荐阅读