如何在 Flutter 应用程序中使用 SOLID 原则实现链接到 Provider 的 API 调用?
How to implement an API call linked to a Provider using SOLID principles in a Flutter app?
我正在尝试重构我的 Flutter 天气应用程序。
它最终会调用一个 API 来提供基于位置作为参数的天气数据。
目前,我有:
- A WeatherJSONModel.dart 对应于我使用的 API 给出的 JSON 响应。
- 一个 WeatherAPI.dart 文件,它设法使用参数调用 API,并将 JSON 响应解析为上述模型。
- A WeatherModel.dart 是应用程序显示的数据模型。
- 一个 WeatherProvider(扩展 ChangeNotifier),它将 API 返回的 WeatherJSONModel 转换为 WeatherModel,然后可供应用程序使用。
我非常怀疑这是最有效的方法,但找不到如何正确实现我的调用。
是否应该更 APICallClass 到 ResponseHandlerClass 到 ProviderClass?
谢谢!
TLDR;如何按照 SOLID 原则实施 API 调用和 JSON 解析?
关于 flutter 这个主题的最佳教程之一(在我看来)可以在这里找到:
https://github.com/ResoCoder/flutter-tdd-clean-architecture-course
还有一个written series and a 7 hour YouTube Tutorial这个:
这是架构提案:
我正在尝试重构我的 Flutter 天气应用程序。
它最终会调用一个 API 来提供基于位置作为参数的天气数据。
目前,我有:
- A WeatherJSONModel.dart 对应于我使用的 API 给出的 JSON 响应。
- 一个 WeatherAPI.dart 文件,它设法使用参数调用 API,并将 JSON 响应解析为上述模型。
- A WeatherModel.dart 是应用程序显示的数据模型。
- 一个 WeatherProvider(扩展 ChangeNotifier),它将 API 返回的 WeatherJSONModel 转换为 WeatherModel,然后可供应用程序使用。
我非常怀疑这是最有效的方法,但找不到如何正确实现我的调用。
是否应该更 APICallClass 到 ResponseHandlerClass 到 ProviderClass?
谢谢!
TLDR;如何按照 SOLID 原则实施 API 调用和 JSON 解析?
关于 flutter 这个主题的最佳教程之一(在我看来)可以在这里找到:
https://github.com/ResoCoder/flutter-tdd-clean-architecture-course
还有一个written series and a 7 hour YouTube Tutorial这个:
这是架构提案: