Dynamics CRM 2015/2016 Web API:Unbound Function 和 Bound Function
Posted ghostbear
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dynamics CRM 2015/2016 Web API:Unbound Function 和 Bound Function相关的知识,希望对你有一定的参考价值。
今天我们来看看Dynamics CRM Web API Function 吧, 这是一个新概念,刚接触的时候我也是比较的迷糊,这样的命名确实是和之前的那套基于SOAP协议的API完全联系不上。好了,不说闲话了。这里的Function呢,就我来看,更像是一些被封装好的原生函数和老API中的Request差不多的意思,只是API的架构方式变了,所以名称也就跟着变了。
我们之前要查看当前登录用户的信息,需要调用WhoAmIRequest,那现在呢?我们需要调用WhoAmI Function。 这里的Function又被分为 Unbound和Bound,什么意思呢?Unbound Function可以理解为不专门服务某个实体,我们可以在任何时候去调用它。Bound Function 则是专门为某个实体服务,它对其他实体是不可见的,并且提供调用的方式也很便捷。
我们来看两个例子吧,一个是调用Unbound Function,另一个是调用Bound Function:
static string clientId = "580c20be-5960-42a0-837f-9b554b88b2d5";//"025220cd-a8c9-414f-aad7-a9288404262b";
static string service = "https://ghostbear.crm6.dynamics.com";
static string redirectUrl = "http://localhost/weapidemo";
static string username = "account";
static string password = "pwd";
static string webApiUrl = "https://ghostbear.api.crm6.dynamics.com/api/data/v8.0";
Unbound Function(无参数)
HttpRequestMessage whoaiReq = new HttpRequestMessage(HttpMethod.Get, webApiUrl + "/WhoAmI()");
whoaiReq.Headers.Authorization = new AuthenticationHeaderValue("Bearer", auth.AcquireToken().AccessToken);
HttpResponseMessage whoaiResp = await client.SendAsync(whoaiReq);
if (whoaiResp.IsSuccessStatusCode)
{
JObject whoaiInfo = JsonConvert.DeserializeObject<JObject>(await whoaiResp.Content.ReadAsStringAsync());
Console.WriteLine(whoaiInfo["UserId"]);
}
Unbound Function(带参数)
string userId = "05cc9481-7d37-4e20-8de0-dd892c47939b";
string retrievePrvQuery = string.Format(webApiUrl + "/RetrieveUserPrivileges(UserId=@p1)?@p1={0}", userId);
HttpRequestMessage retrievePrvReq = new HttpRequestMessage(HttpMethod.Get, retrievePrvQuery);
retrievePrvReq.Headers.Authorization = new AuthenticationHeaderValue("Bearer", auth.AcquireToken().AccessToken);
HttpResponseMessage retrievePrvResp = await client.SendAsync(retrievePrvReq);
if (retrievePrvResp.IsSuccessStatusCode)
{
JObject priveleges = JsonConvert.DeserializeObject<JObject>(await retrievePrvResp.Content.ReadAsStringAsync());
Console.WriteLine(priveleges["value"]);
}
Bound Function
以上是关于Dynamics CRM 2015/2016 Web API:Unbound Function 和 Bound Function的主要内容,如果未能解决你的问题,请参考以下文章
Dynamics CRM 2015/2016/365 Web API:级联查询
Dynamics CRM 2015/2016 Web API:基于视图的数据查询
Dynamics CRM 2015/2016 Web API:新的数据查询方式
Dynamics CRM 2015/2016 Web API:聚合查询
Dynamics CRM 2015/2016 Web API:Unbound Action 和 Bound Action