问题标签 [chopper]
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.
flutter - 在同一页面中使用两个 BLoC 并在第二个 BLoC 中传递第一个 BLoC 的状态
这几天我一直在学习 Flutter 中的 Bloc Pattern。
我有一个页面需要生成 OTP 并对其进行验证。
有两个 API(generateOtp、validateOtp)两个实现了这个功能。
在 generateOtp API 响应中,我需要保存一个密钥,即 uniqueIdentifier。
然后我需要将上面的 uniqueIdentifier 和 Otp 值(用户输入)传递给 validateOtp API。
我创建了两个单独的 BLoC... generateOtpBloc、validateOtpBloc。
使用 MultiBLoC Provider 我正在使用这两个 BLoC。
- 我能够调用 API 并在我的 UI 页面中获取 API 响应。
但是如何保存我在 generateOtp 中获得的 uniqueIdentifier 值以及如何在第二个 API 中传递这个 uniqueIdentifier?
我想到了使用 setState() 来设置 uniqueIdentifier 的状态。但我收到一个错误。
generateOtp 和 validateOtp 请求和响应都完全不同……这就是我使用两个不同 BLoC 的原因。
向我建议处理此问题的最佳方法?
json - Flutter:在斩波转换器中使用 moor 生成的模型 json 工厂
我在我的 Flutter 应用程序中使用 moor 作为本地存储,我创建了表,并 moor 为我生成了模型,使用 fromJson 工厂和 toJson 方法。例子:
我正在使用 chopper 来使用 API,并创建一个 chopper 客户端,我需要告诉它如何序列化和反序列化请求/响应正文。Chopper 通过在创建 Chopper 客户端时设置转换器属性来提供此功能:
我想让 chopper 在我的模型中使用 moor 生成的 fromJson 和 toJson,但我似乎没有找到正确的方法来做到这一点。任何提示,指南表示赞赏。
flutter - 书:Flutter Apprentice - 尝试从 Api 响应中制作通用 ModelConverter
在Raywenderlich的优秀 Flutter书中,第 13 章致力于使用库Chopper和JsonConverter从 api 获取响应。
Github 中的代码在这里
他还建议使用像函数式编程这样的响应包装器,类型为 Success/Error。
从响应到成功/错误包装器的 ModelConverter,适用于 APIRecipeQuery 模型,并且仅在一行中使用一种方法final recipeQuery = APIRecipeQuery.fromJson(mapData);
。进行泛型转换似乎很合乎逻辑,因为它是一个非常有用的类。
因此,我尝试通过在构造函数中将模型作为参数传递:
recipe_service.dart
我用调用它converter: ModelConverter(model: APIRecipeQuery)
,但我不知道如何静态引用模型,也无法访问该方法model.fromJson
接下来,我尝试只传递函数转换器:
在 API 中使用 getter,并recipe_service.dart
使用converter: ModelConverter(fromJson: APIRecipeQuery.fjConverter)
但我无法让它工作。
使 ModelConverter 通用的最佳方法是什么?提前谢谢。
api - Flutter Chopper 401 更新和重试拦截器
我在我的颤振应用程序中使用 Chopper,我需要做的是,当我从我的 API 获得 401 响应状态代码(未经授权)时,我必须调用另一个端点来刷新我的令牌并将其保存到安全存储中,当所有完成后,我需要立即重试请求(这样用户就不会注意到他的令牌已过期)。这仅适用于 Chopper,还是我必须使用其他包?
flutter - 在 ChopperClient 颤振中添加多个转换器
我正在使用 json-annotation 为不同的响应集创建不同的 .g.dart 类。现在,当我使用 Chopper Client 发出请求并将响应映射到模型类时,我正在创建转换器。但我只能为斩波器客户端分配一个转换器。我想要实现的是使用 get_it 包来初始化 chopper 客户端。如何在发出不同请求时为斩波器客户端分配不同的转换器。 这是 get_it 包用于初始化类的基类。
base.dart
我正在使用 HomeModelConverter 发出 Get 请求并将响应映射到 HomeModelResponse 的这个 ChopperService 类,并且这个 HomeModelConverter 在上面的 chopper 客户端对象中分配。
home_api_service.dart
这是特定于 HomeModelResponse 的转换器类。在 decodeJson 函数中,我们明确提到它来解码到 HomeModelResponse。
home_model_converter.dart
这是 HomeModelResponse,传入的响应将自动映射到其中。
home_model_response.dart
上面的代码对 home_api_service 工作正常,我得到了正确的响应。 现在我想创建另一个服务,例如 AddApiService。这将有不同的转换器。如何在斩波器客户端中动态更改转换器。现在 HomeModelConverter 在初始化时是硬编码分配的。我不想为每个转换器创建多个 ChopperClient。卡在这里。或任何创建通用转换器的选项
如果有人可以建议这种方法是否可行,或者是否有更好的方法可以遵循。
flutter - 从 3.0.1 => 4.0.1 升级后颤振斩波器构建失败,请帮助了解生成器输出
我确实将我的颤振项目升级到了颤振2,作为升级的一部分,我确实将斩波器版本从 3.0.1 升级到了 4.0.1 nullsafety。之后,命令flutter packages pub run build_runner watch --delete-conflicting-outputs
开始显示错误,这很难理解,因为我什至找不到错误消息指向的代码。这是错误输出片段:
在第 29 行的源代码 lib/data/api/my_api.dart 中,没有显示消息,但有:
我确实搜索了所有项目文件,但没有找到任何包含显示我的代码错误消息的文件。查看变量类型和名称,可以假设与 my_api.dart 代码中的错误匹配的行是:
但我无法弄清楚他们有什么问题?
- -更新 - -
找到答案https://www.gitmemory.com/issue/lejard-h/chopper/249/824860498 将其添加到 pubspec.yaml 后,我生成了我的 chopper api
但这对我来说不是解决方案,因为我的项目不是 nullsafey,它使用的是 sdk>=2.9.0。似乎只有艰难的方法,那就是做空安全迁移((。谢谢
flutter - 尝试使用斩波器将文件上传到服务器
我第一次使用斩波器,所以我需要将文件上传到服务器。在这里我不确定是否正确使用该文件,这是我的代码:
这是我用 Provider 调用 postDocuments 的函数,当我在控制台中调用它时,我得到'将对象转换为可编码对象失败:'_File' 的实例'
flutter - Flutter Chopper:如何创建具有多种服务的客户端?
目前我有这些代码:
和
然后我这样称呼它:
但我看到它接受不止一种服务......
我可以以某种方式降低代码量吗?(如果没有,我将再上 5 节这样的课……)
如果可能,如何以及如何使用它?
编辑:
它是这样工作的:
您创建服务,例如:
文件:test_api.dart
创建客户端:
然后你可以使用这样的服务:
json - 为什么在尝试使用颤振斩波器和内置值调用方法时出现错误?
我收到以下错误,我相信这是因为 null 安全,这意味着没有收到任何数据或 getSignedInUser() 方法不正确或类BuiltValueConverter是原因。
(我用 Postman 测试了令牌并检索了数据)
E/flutter (21792): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] 未处理的异常:未处理的错误 Null 检查运算符用于空值,发生在“AuthBloc”实例中。E/flutter (21792): #0
BuiltValueConverter._deserialize package:todo_list_app/…/auth/built_value_converter.dart:51 E/flutter (21792): #1 BuiltValueConverter._convertToCustomObject package:todo_list_app/…/auth/built_value_converter.dart:36 E/flutter (21792):#2 BuiltValueConverter.convertResponse 包:todo_list_app/…/auth/built_value_converter.dart:25
我正在使用带有built_value Pubs 的斩波器。我正在尝试将即将到来的 json 转换为对象。例子:
{“用户名”:“杰克”,“电子邮件”:“jack2066@gmail.com”,“用户角色”:“用户”,“created_at”:“2021-07-03T16:49:56.774Z”,“updated_at”: “2021-07-03T16:49:56.774Z”}
错误开始的以下代码也在本教程转换器和内置值集成中进行了说明
这是我的 Chopper 服务代码,getSignedInUser抛出错误。我不知道getSignedInUser方法的实现是否正确。
知道如何解决此错误吗?还有 Chopper 或具有良好文档的替代 pub 的良好文档吗?谢谢