Dynamics 365应用程序开发 7. 使用Web API开发应用程序

Web API是一项新功能,首次为Dynamics CRM 2016引入。您可以将Dynamics 365 Web API与不同的编程语言、多个平台和设备一起使用。Dynamics365中的Web API使用开放数据协议(OData),也称为OData版本4。由于Dynamics 365 Web API是基于开放标准构建的,因此无需使用任何程序集

使用Dynamics365时,组织数据服务已弃用,取而代之的是Web API。API的主要目的是提供与组织服务同等的服务,并尽可能减少限制。

以下是Web API的特点:

  • 它实现了OData 4.0版本,用于在丰富的数据源(如DOC、HTML和PDF)上构建和使用RESTful API
  • 它支持多种编程语言,如.Net、C++、Java、Python、设备和平台
  • 请求和响应具有JSON格式

开始使用Dynamics 365 Web API(客户端JavaScript)

可以使用JavaScript调用和访问Dynamics365 Web API。您可以将Web API与HTML Web资源、表单脚本和功能区命令一起使用,以对数据执行各种操作。

Web API非常方便与JavaScript一起使用,因为它以JSON对象的形式返回结果,可以很容易地转换为JavaScript对象。

在Dynamics365中,Web API主要用于HTML Web资源和单页应用程序。

JavaScript web资源

在JavaScript Web资源中使用Web API的主要好处是,您不需要进行身份验证,因为Web资源是应用程序的一部分,只能由经过身份验证的用户访问。您可以直接在JavaScript Web资源中编写Web API操作的代码,并执行操作。

单页应用程序

单页应用程序能够进行Dynamics365 Web API调用。它们由许多在浏览器上运行的JavaScript库组成,这些库使用交叉原始资源共享(CORS)对Dynamics365 API进行身份验证。

在单页应用程序中使用JavaScript时,adal.js库用于允许用户从托管的web应用程序进行身份验证和访问Dynamics 365。您还必须集成包含身份验证令牌的授权标头。

接下来,在本章中,我们将介绍一些使用Web API使用Web资源执行CRUD操作的示例。

Dynamics365 Web API使用XMLHttpRequest对象执行操作。

在Dynamics365 Web API中使用XMLHttpRequest

XMLHttpRequest(XHR)是所有浏览器都支持的本地对象,它支持AJAX技术使网页动态。

我们将看到一个使用Web API和XMLHttpRequest对象的非常简单的示例。

以下是将获取所有机会的Web API代码:

var req = new XMLHttpRequest();
 req.open("GET", Xrm.Page.context.getClientUrl() +
 "/api/data/v8.2/opportunities()", true);
 req.setRequestHeader("OData-MaxVersion", "4.0");
 req.setRequestHeader("OData-Version", "4.0");
 req.setRequestHeader("Accept", "application/json");
 req.setRequestHeader("Content-Type",
 "application/json; charset=utf-8");
 req.setRequestHeader("Prefer", "odata.include-annotations="*"");
 req.onreadystatechange = function() {
 if (this.readyState === 4) {
 req.onreadystatechange = null;
 if (this.status === 200) {
 var result = JSON.parse(this.response);
 var opportunityid = result["opportunityid"];
 } else {
 Xrm.Utility.alertDialog(this.statusText);
 }
 }
 };
 req.send();

在前面的代码中,您会注意到,初始化一个新的XMLHttpRequest对象后,您需要在发送或设置它的任何属性之前打开它。打开方法的参数是HTTP请求方法(GET、PUT、POST、DELETE等)、URL和指示操作是否异步执行的布尔参数。

Web API URL和版本

`Web API URL包含以下内容:

  • 协议:HTTP请求中的协议可以是HTTP://或https://。
  • 基本URL:基本URL只是您当前组织的URL,可以使用函数--Xrm.Page.context.getClientUrl()进行检索。
  • Web API路径:Dynamics 365中的Web API路径为API/数据。
  • 版本:它是Dynamics 365的Web API版本。最新版本是9.0。
  • 资源:资源可以是要执行的实体、函数或操作的名称。

上例中使用的URL是Xrm.Page.context.getClientUrl()+“/api/data/v8.2/opportunities()。

HTTP请求还支持如下所述的各种HTTP方法:

  • GET:用于检索数据;成功呼叫的状态代码为200 OK
  • POST:它用于创建新记录
  • PATCH:用于更新或执行实体记录的追加销售操作
  • DELETE:用于删除记录
  • PUT:在更新实体记录的单个属性时使用

对于HTTP请求,还使用了各种HTTP标头,如下所述:

Dynamics 365仅支持JSON格式。因此,以下标题可以与Dynamics365 Web API一起使用。

对于每个请求,必须包含application/json的Accept头值,即使在没有响应的情况下,它也会返回body。如果出现错误,将以JSON格式返回。您的代码可以在没有此标头的情况下工作,但最好将其用于您的请求。

必须始终包含标头、OData Version和OData Max Version,并将其设置为值4.0。OData的当前版本是4.0,但为了避免将来OData版本的歧义,您应该在请求中包含这些标头。

不包括任何最近更改的属性可能包括缓存的数据。因此,要覆盖Web API请求的浏览器缓存,必须包含If-Non-Match:请求正文中的标头为null。

在Dynamics365中了解了Web API的基本概念后,我们将转向使用Web API执行各种操作。我们还将学习如何使用Web A

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Dynamics 365 WebApi 是一种用于与 Dynamics 365 应用程序进行交互的 RESTful API。通过 WebApi开发人员可以使用 HTTP 请求与 Dynamics 365 中的实体进行交互,包括创建、更新、删除和检索等操作。 以下是一些常见的 Dynamics 365 WebApi 的用法和功能: 1. 认证和授权:在使用 WebApi 之前,需要进行身份验证和授权。可以使用 Azure Active Directory (AAD) 或其他支持 OAuth 2.0 的身份验证提供程序进行身份验证,并获取访问令牌用于访问 Dynamics 365。 2. 实体操作:使用 WebApi 可以对 Dynamics 365 中的实体进行各种操作,如创建、更新、删除和检索。可以使用 HTTP 请求(如 POST、PUT、DELETE 和 GET)来执行这些操作,并通过请求的 URL 和有效载荷指定要操作的实体和属性。 3. 查询和筛选:WebApi 支持使用 OData 查询语言来执行高级查询和筛选操作。可以使用查询字符串参数来指定要检索的实体类型、要筛选的属性、排序方式、过滤条件等。 4. 关联和导航属性:Dynamics 365 中的实体之间可能存在关联关系,WebApi 允许通过关联属性和导航属性来处理这些关系。可以使用关联属性来创建、更新和删除关联记录,使用导航属性来检索关联记录。 5. 批量操作:WebApi 支持批量操作,可以在单个 HTTP 请求中执行多个操作。可以将多个实体的创建、更新和删除操作组合到一个批处理请求中,以提高性能和减少网络延迟。 总的来说,Dynamics 365 WebApi 提供了一个强大且灵活的方式来与 Dynamics 365 应用程序进行集成和操作数据。开发人员可以根据业务需求使用 WebApi 来构建自定义的应用程序、集成系统或扩展现有功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Martin-Mei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值