使用插件注册工具创建自定义 API

在插件注册工具(PRT)中使用设计器创建自定义 API。 本文介绍如何定义自定义 API、添加请求参数和响应属性,以及查看、更新或删除它们。 PRT 是一个 Windows 客户端应用程序,它是可从 NuGet 下载的开发人员工具的一部分。 有关下载这些工具的信息,请参阅 Dataverse 开发工具。

使用插件注册工具进行连接

  1. 通过执行 PAC CLI pac tool prt 命令打开插件注册工具。

  2. 选择“ +创建新连接 ”以连接到 Dataverse 环境。

  3. 确保选中 Office 365 。

  4. 如果要使用当前使用的帐户以外的Microsoft帐户进行连接,请选择“ 显示高级 ”并输入凭据。 否则,保持选择作为当前用户登录。

    注释

    如果用户帐户采用多重身份验证(MFA),请确保未选中 “显示高级 ”复选框。

  5. 如果Microsoft帐户提供对多个环境的访问权限,请选择 “显示可用组织”列表。

    使用插件注册工具登录。

  6. 选择登录。

  7. 如果选择 了可用组织的显示列表,请选择要连接到的组织,然后选择 “登录”。

  8. 连接后,你将看到任何现有的已注册插件、自定义工作流活动和数据提供程序。

    查看现有的插件和自定义工作流活动。

创建自定义 API

在 “注册 ”菜单中,选择 “注册新的自定义 API ”命令。 此操作将打开窗体以创建自定义 API。

用于在插件注册工具中创建自定义 API 的表单的屏幕截图。

使用下表创建自定义 API。 有关详细信息,请参阅 自定义 API 表列。

重要

保存自定义 API 后,无法更改某些选项。 确保了解无法更改的每个设置的目的。 如果以后需要更改此设置,则必须删除并重新创建自定义 API。 此操作还会删除与其关联的任何请求参数或响应属性。

标签 说明 可以更改
显示名称 可本地化的名称。 Yes
姓名 友好且不可本地化的名称。 Yes
解决方案 创建新解决方案或选择现有解决方案。 设置此值可设置 “唯一名称” 字段的相应自定义前缀。 Yes
唯一名称 自定义 API 的名称。 此值应仅包含字母数字字符,且不包含空格。
全名包括通过选择解决方案确定的自定义前缀。
否
说明 可本地化的描述。 在消息公开供应用调用时使用。 例如,作为 工具提示。 Yes
装配 可选。 选择一个程序集,其中包含定义该自定义 API 的功能的插件类型。 Yes
插件 可选。 在所选程序集中选择插件类型。 稍后可以设置此值。 Yes
允许的自定义处理步骤类型 您允许哪些类型的处理步骤? 详细信息: 选择自定义处理步骤类型 否
绑定类型 实体绑定的类型。 详细信息: 选择绑定类型 否
绑定实体逻辑名称 如果在绑定类型中选择实体或实体集合,请输入表示该类型的表的逻辑名称。 否
执行权限名称 控制某人是否可以使用该 API 的权限的名称。 此名称必须是 Privilege 表中的有效 Name 值。 详细信息: 通过要求特权来保护自定义 API Yes
职能 是否创建函数。 详细信息: 何时创建函数 否
专用 自定义 API 是否应为专用 API。 详细信息: 何时将自定义 API 设为专用 Yes

注释

  • PRT 自定义 API 设计器不会公开 Enabled For Workflow (WorkflowSdkStepEnabled) 属性。 如果要创建适用于工作流的自定义 API,请使用其他方法。
  • PRT 自定义 API 设计器不公开 Is 可自定义 托管属性。 可以在Power Apps中设置此属性。 有关详细信息,请参阅 自定义 API 定制。

可以继续添加 请求参数 和 响应属性,或保存自定义 API,并在以后添加它们。

创建自定义 API 请求参数

自定义 API 不需要请求参数。 创建或编辑自定义 API 时,可以通过选择 “+ 添加请求参数”来添加请求参数。 此选项将打开 “参数” 表单。

用于创建自定义 API 请求参数的参数表单的屏幕截图。

使用下表创建请求参数。 有关详细信息,请参阅 CustomAPIRequestParameter 表列。

标签 说明 可以更改
显示名称 可本地化的显示名称。 Yes
姓名 自定义 API 请求参数的主要名称。 使用此命名约定将此参数与共享公用 唯一名称的其他参数区分开来: {Custom API Unique Name}.{Parameter UniqueName} Yes
唯一名称 调用自定义 API 时参数的名称。 否
类型 选择参数的类型。
布尔
日期时间
Decimal
实体
实体集合
EntityReference
漂浮
Integer
金钱
选择列表
字符串
StringArray (字符串数组)
GUID
否
逻辑实体名称 选择 Entity、 EntityCollection 或 EntityReference 作为 类型时,请指定表。 否
说明 可本地化的描述。 Yes
可选 调用方是否必须为参数提供值。 否

创建自定义 API 响应属性

操作的自定义 API 不需要任何响应属性。 创建自定义 API 或编辑现有 API 时,可以通过选择“+ 添加响应参数”来创建新的响应属性。 此选项将打开 “参数” 表单。

用于创建自定义 API 响应属性的参数窗体的屏幕截图。

使用下表创建响应属性。 有关详细信息,请参阅 CustomAPIResponseProperty 表列。

标签 说明 可以更改
显示名称 可本地化的显示名称。 Yes
姓名 自定义 API 响应属性的主名称。 使用此命名约定将此参数与共享公用唯一名称的其他参数区分开来: {Custom API Unique Name}.{Property UniqueName} Yes
唯一名称 此名称是在调用自定义 API 时返回的属性。 否
类型 选择属性的类型。
布尔
日期时间
Decimal
实体
实体集合
EntityReference
漂浮
Integer
金钱
选择列表
字符串
StringArray (字符串数组)
GUID
否
逻辑实体名称 选择 Entity 或 EntityReference 作为 “类型” 时,请指定表。 选择实体集合作为类型时,不能指定逻辑实体名称。 否
说明 可本地化的描述。 Yes

查看自定义 API 列表

若要查看自定义 API 的列表,请从“视图”菜单中选择“按消息显示”命令。

显示自定义 API 的“视图”菜单中“按消息显示”命令的屏幕截图。

作为自定义 API 创建的任何消息都以 (自定义 API) 为前缀。

删除自定义 API

查看自定义 API 列表时,请选择要取消注册的 API,然后选择“取消注册”。

用于删除所选自定义 API 的“取消注册”命令的屏幕截图。

或者,右键单击该项,然后从上下文菜单中选择“取消注册”。

更新自定义 API 请求参数或响应属性

在 请求参数 或 响应属性列表中,选择要编辑的列:

用于编辑自定义 API 请求参数或响应属性的列的屏幕截图。

删除自定义 API 请求参数或响应属性

在 请求参数 或 响应属性列表中,选择要删除的列:

用于删除自定义 API 请求参数或响应属性的列的屏幕截图。

后续步骤

如果未为自定义 API 设置 IsPrivate 属性,可以在创建自定义 API 后检索服务定义。 使用 GET 请求获取 CSDL $metadata 文档,即使在浏览器中也是如此。 如果环境的 URL 为https://yourorg.crm.dynamics.com,请在浏览器地址字段中键入此 URL 以检索$metadata: https://yourorg.crm.dynamics.com/api/data/v9.1/$metadata

搜索结果以查找自定义 API 的名称。 你会发现,为表示返回值而一同创建了操作或函数以及任何相关的 ComplexType。 例如:

<ComplexType Name="sample_CustomAPIExampleResponse">
    <Property Name="StringProperty"
        Type="Edm.String"
        Unicode="false"/>
</ComplexType>
<Action Name="sample_CustomAPIExample">
    <Parameter Name="StringParameter"
        Type="Edm.String"
        Nullable="false"
        Unicode="false"/>
    <ReturnType Type="mscrm.sample_CustomAPIExampleResponse"
        Nullable="false"/>
</Action>

即使未为自定义 API 设置 插件 ,也可以测试它以验证签名。 响应属性返回其默认值,因为没有插件设置这些值。 有关详细信息,请参阅 调用自定义 API。

如果添加插件,则必须编写该插件并注册程序集。 然后更新自定义 API 以设置 程序集 和 插件 ,以指定要在响应自定义 API 时运行的代码。 有关详细信息,请参阅 为自定义 API 编写插件。

另请参阅

创建和使用自定义 API
在 Power Apps 中创建自定义 API
使用代码创建自定义 API
使用解决方案文件创建自定义 API
创建自己的邮件
自定义 API 表列