问题标签 [dart-rpc]

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 投票
1 回答
649 浏览

dart - Dart await 关键字

我想使用 io 示例(https://github.com/dart-lang/rpc)尝试 Dart 的 rpc 包

我在使用 1.9.1 sdk 的 64 位版本的 Dart 编辑器(不能更新超过稳定版本)

这是我的 pubspec.yaml :

但是当我尝试复制示例以启动我的服务器时:

我的 EDI(SDK) 不知道 await 关键字。(我在我的库文件中导入了 dart:io dart:async 和 rpc 包)

我错过了什么?预先感谢您的回复。祝你今天过得愉快。

0 投票
1 回答
180 浏览

dart - Dart 架子和 rpc 包之间不兼容?(“访问控制请求方法”标头)

似乎有架子和 rpc 包之间的不兼容。

在 rpc [0.4.1] config/api.dart 中:handleHttpOptionsRequest 期望 'access-control-request-method' 标头是一个列表:

当使用架子 [0.5.7] 包时,传递给此方法的 ParsedHttpApiRequest 包含一个“访问控制请求方法”标头,它是一个字符串。

这会产生一个异常......

将 rpc 与 dart.io HttpServer 一起使用时,代码可以正常工作,并且 ParsedHttpApiRequest 有一个字符串列表(带有单个元素)作为“访问控制请求方法”标头的值。

有人成功使用 dart rpc + Shelf 吗?如果是这样,关于如何避免异常的任何想法?

=== [更新] rpc 修复后,前面提到的问题似乎已修复。感谢那!我现在遇到另一个问题,但我还没有详细调查。堆栈跟踪是:

货架[0.5.7]货架_rpc [0.0.3] RPC [0.4.2]:

=>在运行 dart rpc 和与作为列表(而不是字符串)的标题相关的架子(带有架子 rpc)时查看不兼容性

0 投票
1 回答
131 浏览

dart - 运行 dart rpc 和与作为列表(而不是字符串)的标题相关的架子(带有架子 rpc)时不兼容

运行 dart rpc 和与作为列表(而不是字符串)的标题相关的架子(带有架子 rpc)时不兼容。

在运行 dart rpc 和与作为列表(而不是字符串)的标题相关的架子(带有架子 rpc)时,似乎存在不兼容性。

抛出的错误是(对于货架[0.5.7]、货架_rpc[0.0.3]、rpc[0.4.2]:):

解决此问题的一种解决方法是更改​​shelf_rpc.dart 以用字符串替换列表:

输出:

0 投票
1 回答
133 浏览

dart - 在非应用引擎服务上使用 Document Discovery 服务

我一直在玩 Dart 中的 RPC 包,它可以轻松地将 Document Discovery 服务添加到 Dart 服务器。

经过一番谷歌搜索后,我发现了API 发现服务 https://developers.google.com/discovery/,它解释了如何为给定的发现文档创建客户端代码。

然后我找到了 Google Cloud Endpoint,它看起来像 Document Discovery 服务的服务器端。这是真的。

我真正的问题是,我想在基于(比如)Spring 并运行(比如)嵌入式 Jetty 服务器的标准网站上使用 Document Discovery 服务?这是可能的,还是我的应用程序会与 App Engine 技术交织在一起?

0 投票
1 回答
132 浏览

dart - Dart - 运行 rpc 生成客户端时出错

我正在尝试遵循“Beware the Nest o' Pirates”教程 https://www.dartlang.org/codelabs/server/并在尝试为 PiratesApi 生成客户端代码时遇到问题

当我运行命令时

pub global run rpc:generate client -i lib/server/piratesapi.dart -o lib/client

我收到以下错误消息

执行命令 'discoveryWithImports' 失败并出现错误:

没有在类“ApiParser”中声明的具有匹配参数的构造函数“ApiParser”。

NoSuchMethodError:传递给名为“ApiParser”的方法的参数数量不正确

接收方:类型:类“ApiParser”

尝试调用:ApiParser(strict: true)

找到:ApiParser()

该错误消息是什么意思?

0 投票
1 回答
449 浏览

json - Dart-RPC:使用 Protocol Buffers 序列化而不是 JSON

默认情况下,Dart-RPC在服务器和客户端之间传输对象(类实例)时使用 JSON 序列化。

如何改用Protobuf ( Protocol Buffers )序列化?
是否可以使用Accept请求标头指定序列化方法(如内容类型)?

这是我尝试过的,

我使用了以下代表实体的.proto定义文件:Person

通过运行以下命令,使用protoc-gen-dart 插件person.pb.dart为我生成:

还有一些样板 dart-rpc 代码:

更新

打开了一个功能请求:https ://github.com/dart-lang/rpc/issues/62

0 投票
2 回答
167 浏览

rest - Dart RPC 和对象层次结构

这可能是关于 REST API 的一个非常基本的问题。我刚开始阅读文档,没有看到如何为具有子对象的对象/模型实现 API。相反,只有原始对象(int、string 等)的描述。

有没有对象层次结构的例子?或者,服务器模型可能只是在类定义中使用 ID 来引用子对象,就像 Google 的 NDB 是如何做到的?

0 投票
1 回答
648 浏览

dart - 如何在飞镖架-RPC服务器中获取客户端IP

我有一个用 Shelf 和 Rpc api 编写的 dart Web 服务应用程序。

我需要在我的 api 方法中检查客户端 Ip,但我不知道如何。

上下文方法不包含 HttpRequest .contentInfo 属性。

此外,货架 Request 对象也不包含它,因此中间件功能也没有用。

有人对如何解决这个问题有想法吗?

0 投票
2 回答
125 浏览

dart - Dart RPC API 方法使用异步

使用 dart rpc 可以将 API 方法标记为“异步”吗?我在文档中看到您可以返回未来,但是当我尝试将方法标记为异步时,它似乎会产生很多问题。

0 投票
1 回答
67 浏览

dart - 如何使用 RPC 在 dart lang 中处理“hub.challenge”形式的查询参数?

通常,查询参数使用 rpc 映射到 dart lang 中的可选变量。

例如http://www.exampleurl.com/test?filter=1

未来测试({int filter})

映射到过滤器。

但是,如果它是http://www.exampleurl.com/test?hub.challenge=1。似乎无法检索该查询参数。这很重要,因为它是使用 Facebook 的 Messenger API 进行验证所必需的。