Flutter数据访问插件cognite_cdf_sdk的使用
Flutter数据访问插件cognite_cdf_sdk的使用
cognite_cdf_sdk
维护者: Greger Wedel, https://github.com/gregertw
这是一个用于Cognite CDF API的Dart包,https://docs.cognite.com/dev/。
此SDK专为时间序列探索的Flutter应用需求而设计。因此,它内置了对数据点分层的支持,这简化了缩放和平移以及时间序列的可视化探索。它还包含了一个请求历史记录,可以查看已执行的REST API请求和响应。
目前,该SDK仅限于时间序列API且只读,但扩展功能应该相对简单。
免责声明
尽管此SDK由Cognite的员工开发,但它是在个人项目中作为业余爱好开发的,因此不能保证该SDK会持续更新或扩展。为了任何可能需要Dart SDK的人或希望贡献的人的利益,它以Apache-2许可共享。
贡献
与本SDK相关的所有活动都在Github上进行。请使用问题跟踪器提交错误或功能建议,或者更好的是提交PR!
开始使用
实例化一个http客户端并开始使用!
注意!您需要提供一个HttpClientAdapter()
实现,如在dio/adapter.dart(DefaultHttpClientAdapter()
)或dio/adapter_browser.dart(BrowserHttpClientAdapter()
)中找到的。以下是支持Web和App的方法:
import 'package:cognite_cdf_sdk/cognite_cdf_sdk.dart';
import 'package:dio/adapter.dart';
main() async {
var apiClient = CDFApiClient(
project: 'project_name', // 替换为您的项目名称
apikey: 'myapi_key', // 替换为您的API密钥
baseUrl: 'https://api.cognitedata.com/', // 基础URL
httpAdapter: DefaultHttpClientAdapter()); // 使用默认HTTP适配器
var res = await TimeSeriesAPI(apiClient).getAllTimeSeries(); // 获取所有时间序列
if (res != null && res.length >= 1) {
print(res[0].externalId); // 打印第一个时间序列的外部ID
}
}
在同一代码中同时使用Web和App的httpAdapter
创建两个文件,httpadapter.dart
和 webhttpadapter.dart
,它们都定义了一个 GenericHttpAdapter()
类:
httpadapter.dart
:
import 'package:dio/adapter.dart';
class GenericHttpClientAdapter extends DefaultHttpClientAdapter {}
webhttpadapter.dart
:
import 'package:dio/adapter_browser.dart';
class GenericHttpClientAdapter extends BrowserHttpClientAdapter {}
然后您可以这样使用通用适配器类:
import 'httpadapter.dart' if (dart.library.html) 'webhttpadapter.dart'; // 条件导入
var client = CDFApiClient(httpAdapter: GenericHttpClientAdapter()); // 实例化CDFApiClient
更多关于Flutter数据访问插件cognite_cdf_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter数据访问插件cognite_cdf_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
cognite_cdf_sdk
是 CDF(Cognite Data Fusion)的 Flutter 插件,用于在 Flutter 应用程序中访问和操作 CDF 数据。CDF 是一个工业数据平台,允许用户存储、管理和分析大规模的工业数据。
以下是使用 cognite_cdf_sdk
插件的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 cognite_cdf_sdk
插件的依赖。
dependencies:
flutter:
sdk: flutter
cognite_cdf_sdk: ^0.1.0 # 请使用最新版本
然后运行 flutter pub get
来获取依赖。
2. 初始化 SDK
在使用 SDK 之前,你需要初始化它。通常,你需要在应用程序启动时进行初始化。
import 'package:cognite_cdf_sdk/cognite_cdf_sdk.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 CDF SDK
await CogniteCdfSdk.initialize(
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET',
tenantId: 'YOUR_TENANT_ID',
project: 'YOUR_PROJECT',
);
runApp(MyApp());
}
3. 认证
CDF 使用 OAuth2 进行认证。你可以使用 CogniteCdfSdk
提供的 authenticate
方法进行认证。
void authenticate() async {
try {
await CogniteCdfSdk.authenticate();
print('Authenticated successfully');
} catch (e) {
print('Authentication failed: $e');
}
}
4. 获取数据
一旦你成功认证,就可以开始从 CDF 获取数据了。以下是一个获取时间序列数据的示例:
void getTimeSeries() async {
try {
final timeSeries = await CogniteCdfSdk.getTimeSeries(
filter: TimeSeriesFilter(
name: 'your_time_series_name',
),
);
print('Time Series: $timeSeries');
} catch (e) {
print('Failed to get time series: $e');
}
}
5. 处理数据
你可以使用返回的数据进行进一步的处理或显示在 UI 中。
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('CDF Flutter SDK Example'),
),
body: Center(
child: ElevatedButton(
onPressed: getTimeSeries,
child: Text('Get Time Series'),
),
),
),
);
}
}
6. 其他功能
cognite_cdf_sdk
插件还提供了许多其他功能,如获取资产、事件、文件等。你可以参考官方文档或源码来了解更多详细信息。
7. 错误处理
在使用 SDK 时,务必处理可能出现的错误,例如网络错误、认证失败等。
try {
// 调用 SDK 方法
} catch (e) {
print('Error: $e');
}
8. 关闭连接
在应用程序退出时,你可以关闭与 CDF 的连接。
void dispose() async {
await CogniteCdfSdk.dispose();
}