Graphql 可以用protobuf发布到Apollo服务器吗?

Graphql 可以用protobuf发布到Apollo服务器吗?,graphql,protocol-buffers,apollo,apollo-server,protobuf.js,Graphql,Protocol Buffers,Apollo,Apollo Server,Protobuf.js,我正在从事一个项目,该项目目前使用protobuf从客户机到api进行通信。我想做一个概念验证,展示通过graphql进行的通信,我想知道是否可以将protobuf发送到apollo服务器而不是json 在阿波罗服务器的频谱中也被问及: 我看到一些protobuf相关的软件包, 我想知道是否有任何计划,或者这是可能的。问这里是因为我在社区网站上没有收到任何回复。如果你可以使用阿波罗服务器快车,你可以做到这一点,只要你可以在服务器上再次将protobuf转换为json,我想这是可以用proto

我正在从事一个项目,该项目目前使用protobuf从客户机到api进行通信。我想做一个概念验证,展示通过graphql进行的通信,我想知道是否可以将protobuf发送到apollo服务器而不是json

在阿波罗服务器的频谱中也被问及:

我看到一些protobuf相关的软件包,


我想知道是否有任何计划,或者这是可能的。问这里是因为我在社区网站上没有收到任何回复。

如果你可以使用阿波罗服务器快车,你可以做到这一点,只要你可以在服务器上再次将protobuf转换为json,我想这是可以用protobuf.js实现的

apollo server
apollo server express
要求请求正文中有三个密钥对值

  • 操作名

  • 变数

  • 质疑

  • 这就是请求主体的外观(使用morgan主体记录)

    如果您使用的是apollo server express,您可以使用自定义的
    express中间件
    ,在该中间件中,您可以将protobuf反序列化为json,并将json添加到apollo server的
    请求主体

    apollo server
    更改为
    apollo server express
    只需执行几步,您的apollo server配置不会发生任何更改

    //从apollo server express而不是apollo server导入它
    const{ApolloServer}=require('apollo-server-express');
    const express=require('express');
    常量app=express();
    应用程序使用((请求、恢复、下一步)=>{
    //在请求到达Apollo服务器之前拦截请求
    //使用protobuf.js将请求体反序列化为json
    //将json添加到req.body
    //调用next()转到下一个中间件
    next();
    });
    const server=new apollo服务器({/*您的apollo服务器配置*/})
    applyMiddleware({app});
    
    app.listen({port:4000},()=>console.log(`如果您可以使用apollo server express
    ,那么您可以实现这一点,只要您可以在服务器上再次将protobuf转换为json,我想这在protobuf.js中是可能的

    apollo server
    apollo server express
    要求请求正文中有三个密钥对值

  • 操作名

  • 变数

  • 质疑

  • 这就是请求主体的外观(使用morgan主体记录)

    如果您使用的是apollo server express,您可以使用自定义的
    express中间件
    ,在该中间件中,您可以将protobuf反序列化为json,并将json添加到apollo server的
    请求主体

    apollo server
    更改为
    apollo server express
    只需执行几步,您的apollo server配置不会发生任何更改

    //从apollo server express而不是apollo server导入它
    const{ApolloServer}=require('apollo-server-express');
    const express=require('express');
    常量app=express();
    应用程序使用((请求、恢复、下一步)=>{
    //在请求到达Apollo服务器之前拦截请求
    //使用protobuf.js将请求体反序列化为json
    //将json添加到req.body
    //调用next()转到下一个中间件
    next();
    });
    const server=new apollo服务器({/*您的apollo服务器配置*/})
    applyMiddleware({app});
    app.listen({port:4000},()=>console.log(`