# OpenAPI

# 一、基本介绍

OpenAPI 是一组基于HTTP/2的RESTFul接口,为跨平台集成BPM服务提供标准化访问能力。

# 核心特性

  • 完整覆盖Yiez.Client功能集
  • 支持多语言/多平台调用
  • 采用标准的Bearer Token认证机制

# 二、快速入门

# 2.1 环境准备

  1. 安装包路径:安装包/SourceCode/Demo/
  2. 解决方案文件:Demo.sln

# 2.2 基础使用示例

# 发送信号示例

打开OpenAPI项目下的Signal.cs文件,找到17行:SendSignalAsync方法

这段代码演示如何通过OpenAPI发送信号:

// 创建支持HTTPS的HttpClient
var httpHandler = new HttpClientHandler();
httpHandler.ServerCertificateCustomValidationCallback = 
    HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;

// 初始化HTTP/2客户端
using (HttpClient httpClient = new HttpClient(httpHandler)
{
    DefaultRequestVersion = new Version(2, 0);
}
{
    // 1. 获取访问令牌
    string token;
    using (var response = await httpClient.PostAsJsonAsync(
        "https://localhost:6001/v1/auth", 
        new {
            clientKey = "system",
            clientSecret = "6YmtHPNi0Ks6u8yzz6fGglhdoGzsSloz"
        }))
    {
        var reply = await response.Content.ReadFromJsonAsync<AuthReply>();
        token = reply.token;
    }

    // 2. 设置认证头
    httpClient.DefaultRequestHeaders.Authorization = 
        new AuthenticationHeaderValue("Bearer", token);

    // 3. 发送信号
    using (var response = await httpClient.PostAsJsonAsync(
        "https://localhost:6001/v1/workflow/execute/signal",
        new {
            signalName = "有人填了采购单",
            uid = "99199",
            data = new {
                amount = 5,
                orderItems = new[] {
                    new { name = "aaa", price = 1, qty = 1 },
                    new { name = "bbb", price = 2, qty = 2 }
                }
            }
        }))
    {
        // 4. 处理响应
        var reply = await response.Content.ReadFromJsonAsync<EmptyReply>();
        if (reply.code != 0)
            throw new Exception(reply.message);
        
        Console.WriteLine($"信号发送成功");
    }
}

# 三、接口文档

  • 在线文档:https://您的BPM服务器地址:6001/OpenAPI
  • 官方演示:https://trial.flowportal.com:6001/OpenAPI