Flutter 插件ory_client的使用_ory_client(实验性)是一个Dart包,用于与Ory API进行交互
Flutter 插件ory_client的使用_ory_client(实验性)是一个Dart包,用于与Ory API进行交互
介绍
ory_client
(实验性)是一个Dart包,用于与Ory API进行交互。该API包括公共和管理端点,其中管理端点需要有效的个人访问令牌才能访问,而公共端点主要在浏览器中使用。此Dart包由OpenAPI Generator项目自动生成。
要求
- Dart 2.15.0+ 或 Flutter 2.8.0+
- Dio 5.0.0+
安装与使用
pub.dev
要从pub.dev使用该包,请在pubspec.yaml
文件中添加以下内容:
dependencies:
ory_client: 1.6.2
GitHub
如果该Dart包发布到GitHub,请在pubspec.yaml
文件中添加以下内容:
dependencies:
ory_client:
git:
url: https://github.com/ory/sdk.git
#ref: main
本地开发
要在本地驱动器上使用该包,请在pubspec.yaml
文件中添加以下内容:
dependencies:
ory_client:
path: /path/to/ory_client
开始使用
请按照上述安装过程进行操作,然后运行以下代码:
import 'package:ory_client/ory_client.dart';
// 初始化 OryClient 并获取 CourierApi 实例
final api = OryClient().getCourierApi();
final String id = 'id_example'; // MessageID 是消息的ID
try {
// 调用 getCourierMessage 方法以获取特定ID的消息
final response = await api.getCourierMessage(id);
print(response);
} catch (e) on DioError { // 捕获 DioError 异常并打印错误信息
print("Exception when calling CourierApi->getCourierMessage: $e\n");
}
API 端点文档
所有URI都是相对于 https://playground.projects.oryapis.com
的。
部分API端点如下:
类 | 方法 | HTTP 请求 | 描述 |
---|---|---|---|
CourierApi | getCourierMessage | GET /admin/courier/messages/{id} | 获取一条消息 |
CourierApi | listCourierMessages | GET /admin/courier/messages | 列出消息 |
EventsApi | createEventStream | POST /projects/{project_id}/eventstreams | 为项目创建事件流 |
EventsApi | deleteEventStream | DELETE /projects/{project_id}/eventstreams/{event_stream_id} | 从项目中删除事件流 |
FrontendApi | createBrowserLoginFlow | GET /self-service/login/browser | 为浏览器创建登录流程 |
OAuth2Api | acceptOAuth2ConsentRequest | PUT /admin/oauth2/auth/requests/consent/accept | 接受OAuth 2.0同意请求 |
更多详细信息请参考文档中的链接。
完整示例 Demo
下面是一个完整的Flutter应用程序示例,展示如何使用ory_client
插件来获取特定ID的消息。
import 'package:flutter/material.dart';
import 'package:ory_client/ory_client.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Ory Client Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String message = "Loading...";
[@override](/user/override)
void initState() {
super.initState();
fetchMessage();
}
Future<void> fetchMessage() async {
try {
final api = OryClient().getCourierApi();
final String id = 'example_message_id'; // 替换为实际的MessageID
// 调用 getCourierMessage 方法以获取特定ID的消息
final response = await api.getCourierMessage(id);
setState(() {
message = response.toString(); // 更新状态以显示获取到的消息
});
} catch (e) on DioError {
setState(() {
message = "Exception when calling CourierApi->getCourierMessage: $e\n";
});
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Ory Client Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Fetched Message:',
),
Text(
'$message',
style: Theme.of(context).textTheme.headline4,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
fetchMessage(); // 点击按钮重新获取消息
},
tooltip: 'Fetch Message',
child: Icon(Icons.refresh),
),
);
}
}
更多关于Flutter 插件ory_client的使用_ory_client(实验性)是一个Dart包,用于与Ory API进行交互的实战教程也可以访问 https://www.itying.com/category-92-b0.html