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

回到顶部