问题标签 [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.
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 包)
我错过了什么?预先感谢您的回复。祝你今天过得愉快。
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 - 运行 dart rpc 和与作为列表(而不是字符串)的标题相关的架子(带有架子 rpc)时不兼容
运行 dart rpc 和与作为列表(而不是字符串)的标题相关的架子(带有架子 rpc)时不兼容。
在运行 dart rpc 和与作为列表(而不是字符串)的标题相关的架子(带有架子 rpc)时,似乎存在不兼容性。
抛出的错误是(对于货架[0.5.7]、货架_rpc[0.0.3]、rpc[0.4.2]:):
解决此问题的一种解决方法是更改shelf_rpc.dart 以用字符串替换列表:
输出:
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 技术交织在一起?
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()
该错误消息是什么意思?
json - Dart-RPC:使用 Protocol Buffers 序列化而不是 JSON
默认情况下,Dart-RPC在服务器和客户端之间传输对象(类实例)时使用 JSON 序列化。
如何改用Protobuf ( Protocol Buffers )序列化?
是否可以使用Accept
请求标头指定序列化方法(如内容类型)?
这是我尝试过的,
我使用了以下代表实体的.proto
定义文件:Person
通过运行以下命令,使用protoc-gen-dart 插件person.pb.dart
为我生成:
还有一些样板 dart-rpc 代码:
更新
rest - Dart RPC 和对象层次结构
这可能是关于 REST API 的一个非常基本的问题。我刚开始阅读文档,没有看到如何为具有子对象的对象/模型实现 API。相反,只有原始对象(int、string 等)的描述。
有没有对象层次结构的例子?或者,服务器模型可能只是在类定义中使用 ID 来引用子对象,就像 Google 的 NDB 是如何做到的?
dart - 如何在飞镖架-RPC服务器中获取客户端IP
我有一个用 Shelf 和 Rpc api 编写的 dart Web 服务应用程序。
我需要在我的 api 方法中检查客户端 Ip,但我不知道如何。
上下文方法不包含 HttpRequest .contentInfo 属性。
此外,货架 Request 对象也不包含它,因此中间件功能也没有用。
有人对如何解决这个问题有想法吗?
dart - Dart RPC API 方法使用异步
使用 dart rpc 可以将 API 方法标记为“异步”吗?我在文档中看到您可以返回未来,但是当我尝试将方法标记为异步时,它似乎会产生很多问题。
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 进行验证所必需的。