问题标签 [twirp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1481 浏览

go - 如何使用 Go 的类型别名让自己的模型与 protobufs 一起工作?

我有一些 REST API,我的模型定义为 Go 结构。

然后我有了获取数据的数据库方法。

现在我想用https://github.com/twitchtv/twirp替换我的 REST API 。

因此我开始在.proto文件中定义我的模型。

现在我有两种User类型。让我们称它们为原生类型和原型类型。

我还在我的.proto文件中定义了一个服务,它将用户返回到前端。

这会生成一个我必须填写的界面。

不幸的是,这不起作用。我的数据库返回一个本地用户,但界面需要一个原始用户。

有没有简单的方法让它工作?也许使用type aliases

非常感谢!

0 投票
1 回答
579 浏览

go - Twirp 不适用于原型

我似乎无法正确安装 twirp 以使用 protobuf。

是我在编译和创建我的 twirp 文件时尝试执行的命令,但是我收到以下错误:

我的 .bashrc 已经为 Golang 提供了这两行:

任何解决此问题的帮助将不胜感激,谢谢。

0 投票
1 回答
256 浏览

go - 是否可以将 GraphQL 与 Twitch 的 Twirp RPC 框架一起使用

我有一个使用 Twirp 的 Golang 程序,我想创建 GraphQl 服务器,但据我所知,twirp 构建在 Rest API 之上

0 投票
1 回答
2397 浏览

go - 使用 dep 时,如何正确包含 protoc 的 golang protobuf/ptypes?

使用dep时,我在包含google/protobuf/timestamp.proto众所周知的类型时遇到问题。

我收到一个错误:google/protobuf/timestamp.proto: File not found

服务原型:

安装包含时间戳 .proto def 的包:

运行protoc并得到错误:

包含时间戳的 .proto 定义的目录存在:

我正在本地安装 protoc,因为我不想将 protoc 版本锁定/绑定到该项目:

我究竟做错了什么?

0 投票
0 回答
37 浏览

go - 如何在 TwirpQL 服务器中连接一个/两个或多个微服务?

我使用的GraphQL server是最常见的网关,它捆绑了我microservices使用gqlgen.

我想切换到TwirpQLTwirpQL server的官方文档。我相信它希望我将每个微服务都包装在其中,这样每个微服务就会有多个 GraphQL 层。

我不想将其他微服务公开为Graphql,而是“只是”为所有请求创建一个入口点,然后将它们相应地发送到受尊重的微服务。

谁能告诉我正确的用法?

谢谢。

0 投票
3 回答
1379 浏览

go - grpc-gateway 与 Twirp RPC 有什么区别

我们已经有了提供 rpc 和 rest 端点的Twrip-RPC 。那么为什么我们需要 grpc-Gateway。与 twirp 相比,它提供了哪些优势。是不是我们可以为 grpc 网关提供自定义端点是唯一的区别。Twrip-rpc 不能做什么 grpc-gateway?

0 投票
1 回答
220 浏览

grpc - 将 protoc 转换为 Prototool.yaml

如何将 protoc 命令转换为 prototool.yaml 文件?

0 投票
1 回答
160 浏览

go - 测试使用 TWIRP 开发的 RPC 服务

我想测试一个示例 Twirp RPC 服务。示例服务来自Twirp 官方网站

Protobuf 定义如下:

服务器实现:

我尝试了这里建议的解决方案,但是 ClientConn 与 HTTPClient 之间存在一些混淆。到目前为止,我有这个

有什么方法可以将一个转换成另一个,或者任何其他方法来测试 Twirp RPC?

0 投票
1 回答
102 浏览

go - 如何使 v2+ 版本的 Go 模块避免导入路径前缀要求?

这是特定于:https ://github.com/twitchtv/twirp

该库当前版本为 v7,我们希望将其迁移到 go 模块中。该库当前是从其他库导入的,如下所示:

如果我们go.mod在库中添加一个文件,现在每个其他库都被迫更改导入路径,如下所示:

我们如何迁移 Twirp 库以使用 go 模块而不强制其他库更新其导入路径?

这里的主要问题是单个服务可能会导入在不同版本上生成的多个 Twirp 客户端,并使用依赖于特定类型的辅助函数。强制导入路径更新将强制所有这些辅助函数需要管理旧类型和新类型,并且我们不能为所有类型创建别名(某些类型是函数)。这将创建一个升级锁。这是否意味着 Twirp 库需要+incompatible永远保持模式?

0 投票
0 回答
32 浏览

json - Proto Buff to Twirp 处理程序,不需要的名称更改

我正在为我的后端服务器使用 golang 'proto3' protobuf 来接收和响应我的 api 调用。我还利用 pb_Twirp 包将数据转换为 json 用于我的前端。

我确信这是有经验的 protobuf 用户所知道的,但我想问 2 个问题:

  1. 为什么我的 protobuf.message 键名的名称从“ids”更改为“idsList”
  2. 如果可能的话,我该如何关闭它。

示例消息:

但是当发送到我的前端时,JSON 读取:

这不仅令人讨厌,而且在我的应用程序平台上保持命名连续性以保持干净并产生错误代码。特别是出于 CRUD 的原因。

请求中的 protobuf 将在 req 的 JSON 中期望 'userdata: []',但是当调用 userdata 时,我必须重新编写代码以期望 'userdataList'

任何澄清将不胜感激,谢谢。