首页 > 其他分享 >使用Insomnia来调用Dataverse的Web API

使用Insomnia来调用Dataverse的Web API

时间:2024-10-26 13:18:49浏览次数:10  
标签:Web cn Base Insomnia Environment _. API https 环境变量

这是我的第513篇原创文章,写于2024年10月26日。

以前我写过一篇文章:配置Postman通过OAuth 2 implicit grant获取D365数据 ,以前我这个文章参考的的官方原文使用的是Postman 这个工具,现在变成使用 Insomnia了,官方原文是:Use Insomnia with Dataverse Web API 。所以我今天来讲讲使用Insomnia来调用Dataverse的Web API。

首先请参考官方的 Install Insomnia 文档下载并安装好 Insomnia ,我这里安装的版本如下:

使用Insomnia来调用Dataverse的Web API_Web API


这是我安装后的欢迎界面:

使用Insomnia来调用Dataverse的Web API_Insomnia_02


我先讲这个软件的两个设置,打开菜单栏的Application > Preferences 菜单项。

使用Insomnia来调用Dataverse的Web API_Microsoft Dataverse_03


如果Show variable source and value选项是默认选中的,我建议取消选中,这样可以看到你有些地方输入的是环境变量,放上去环境变量依然可以看到环境变量的值,而不是直接先是为环境变量的值,后者这种方法会让我误以为我输入的,而不是使用环境变量。如果 Autocomplete popup delay (ms)如果为0的话,我建议设置为300,避免到时候Autocomplete在某些电脑上显示不出来。

使用Insomnia来调用Dataverse的Web API_Power Platform_04


我先创建一个Project,我这里放在本地就好:

使用Insomnia来调用Dataverse的Web API_Insomnia_05

我们的配置会用到Insomnia的环境变量(Environment Variables),简单来说就是类似配置项,有优先级一说,具体优先级如下,我这篇文章会用到Base Environment和Sub Environment。

  1. Folder Environment (highest priority)
  2. Sub Environment
  3. Base Environment (lowest priority)

首先我在主页面点击 Environments旁边的加号按钮,创建一个名称为Base Environment的Base Environment。

使用Insomnia来调用Dataverse的Web API_Insomnia_06


这里要用JSON 的key-value形式,我这里设置如下,与官方文档稍有不同,考虑到了中国大陆版本的特殊性,key以 _cn 结尾的代表如果使用的是中国大陆版本的Power Platform需要使用的,我增加了有些设置,后面会用到。这里配置的是Base Environment,整个Project都可以使用,当然后面我会用Sub Environment覆盖部分值或者新增部分值。值得注意的是环境变量可以嵌套使用,{{ 和 }}之间便是嵌套了其他环境变量的值。

{
	"resourceurl": "https://luoyong.crm.dynamics.com",
	"resourceurl_cn": "https://luoyong.crm.dynamics.cn",
	"version": "9.2",
	"webapiurl": "{{ _.resourceurl }}/api/data/v{{ _.version }}/",
	"webapiurl_cn": "{{ _.resourceurl_cn }}/api/data/v{{ _.version }}/",
	"redirecturl": "https://localhost",
	"clientid": "7cc5e50a-d1ab-4ebc-9c53-1ed491f623c1",
	"tenantid": "499b3b50-942b-4cb5-9809-3e3a6e5824d9",
	"clientsecret": "wCs8Q~Q0CllY2veirmuL7xX6fAeZ6cHGbPnumbah",
	"bearertoken":"placeholder",
	"authurl": "https://login.microsoftonline.com/{{ _.tenantid }}/oauth2/v2.0/authorize",
	"authurl_cn": "https://login.partner.microsoftonline.cn/{{tenantid}}/oauth2/v2.0/authorize",
	"implicitauthurl": "https://login.microsoftonline.com/{{ _.tenantid }}/oauth2/authorize?resource={{ _.resourceurl }}",
	"implicitauthurl_cn": "https://login.partner.microsoftonline.cn/{{ _.tenantid }}/oauth2/authorize?resource={{ _.resourceurl_cn }}",
	"tokenurl": "https://login.microsoftonline.com/{{ _.tenantid }}/oauth2/token",
	"tokenurl_cn": "https://login.partner.microsoftonline.cn/{{ _.tenantid }}/oauth2/token",
	"ODataVersion": "4.0",
	"ODataMaxVersion": "4.0",
	"globalclientid": "51f81489-12ee-4a9e-aaae-a2591f45987d"
}


然后我点击Base Environment旁边的加号,选择 Shared environment, 这是创建 Sub Environment ,相同的key的值会覆盖Base Environment的值,当然也可以新增环境变量的值。

使用Insomnia来调用Dataverse的Web API_Insomnia_07


默认名称是New Environment,我一般双击名称后改成合适的,比如我这个是用于开发环境的,我命名为Dev Environment,当然我还可以新增用于Sit环境的 Sit Environment,我这个环境变量的内容很简单,我就覆盖下Base Environment的 resourceurl的值,设置的值如下图:

使用Insomnia来调用Dataverse的Web API_Power Platform_08


然后一般我会为Microsoft Dataverse创建一个单独的Colection,点击Collections旁边的加号创建。

使用Insomnia来调用Dataverse的Web API_Power Platform_09


第一步先选好Base Environment,点击左边的Base Environment,选择我前面创建的Base Environment,并选择我前面创建的Dev Environment。

使用Insomnia来调用Dataverse的Web API_Power Platform_10


选择后的结果如下:

使用Insomnia来调用Dataverse的Web API_Web API_11


然后我一般会用文件夹folder来分类,点击Filter旁边的加号,再点击New folder这个选项。

使用Insomnia来调用Dataverse的Web API_Microsoft Dataverse_12


比如我可能创建了如下的文件夹:

使用Insomnia来调用Dataverse的Web API_Power Platform_13

第一个我演示文件夹用OAuth 2.0的Client Credentials认证。我在这些配置中使用环境变量的值可以利用自动完成,输入 _. 稍微停顿下就会看到可用的环境变量,选择好就行。或者直接同时按住 Ctrl 键加上空格键(SPACE键) 也可以出来提示,选择合适的环境变量。

使用Insomnia来调用Dataverse的Web API_Insomnia_14


我这里配置了如下的值:

使用Insomnia来调用Dataverse的Web API_Microsoft Dataverse_15


将鼠标放到环境变量上会告知用的是使用的是Sub Environment,它的值是什么,如下图:

使用Insomnia来调用Dataverse的Web API_Microsoft Dataverse_16


使用Insomnia来调用Dataverse的Web API_Insomnia_17


点击右下角的Refresh Token 或者Fetch Token就可以获取到一个token。

使用Insomnia来调用Dataverse的Web API_Web API_18


为了方便后面的请求分类,我再建了一个文件夹CRUD,然后再在这个CRUD文件夹中建立一个HTTP Request,我命名为 RetrieveMultiple Request 。

使用Insomnia来调用Dataverse的Web API_Microsoft Dataverse_19


这个Request的GET url和Params设置如下:

使用Insomnia来调用Dataverse的Web API_Microsoft Dataverse_20


注意Auth保持默认即可。

使用Insomnia来调用Dataverse的Web API_Microsoft Dataverse_21


Headers设置如下:

使用Insomnia来调用Dataverse的Web API_Insomnia_22


点击Send按钮就可以看到返回结果了:

使用Insomnia来调用Dataverse的Web API_Web API_23


点击Console可以看更多的信息如下:

使用Insomnia来调用Dataverse的Web API_Power Platform_24


第二种我演示使用OAuth 2.0的 Implicit 认证,使用的配置如下:

使用Insomnia来调用Dataverse的Web API_Microsoft Dataverse_25


然后点击右下角的Fetch Token按钮就会弹回登录页面,认证通过后就会返回token,其余的请求和前面的OAuth 2.0的Client Credential是一样的。

使用Insomnia来调用Dataverse的Web API_Power Platform_26


值得注意的是,这个认证用的是一个全球环境都自动配置好的一个Client Id,值为 51f81489-12ee-4a9e-aaae-a2591f45987d ,如果你用于中国大陆的环境并不可用。所以最好自己创建一个App,记得这个App的Authentication 的 Access tokens属性要勾选,否则获取不了token。

使用Insomnia来调用Dataverse的Web API_Power Platform_27


标签:Web,cn,Base,Insomnia,Environment,_.,API,https,环境变量
From: https://blog.51cto.com/luoyong/12369240

相关文章

  • HarmonyOS:Node-API实现跨语言交互(1)Node-API简介
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/18503923➤如果链接不是为敢技术的博客园地址,则可能是......
  • keepalived+web 实现双机热备
    环境:利用keeplived实现web服务器的双机热备(高可用)注意:(1)利用keeplived+web做双击热备(高可用),最少需要两台服务器,可以实现多域名对应一个VIP,并且访问不同域名,显示不同主页,可行,已测(2)vip(虚拟ip)不能和物理ip冲突(3)vip(虚拟ip)最好设置成和内网ip同一网段,最后做地址......
  • fastdfs管理工具Go-fastdfs-web 安装教程
    Go-fastdfs-web安装教程安装步骤下载:前往官方下载页面下载所需版本,选择带或不带JRE的安装包。设置权限:给安装文件赋予执行权限,命令为chmod+xgoFastDfsWeb.sh。启动与停止:启动命令为./goFastDfsWeb.shstart,停止为stop,查看状态为status。配置与访问:默认端口为80......
  • 2024.10.26 InfiniCLOUD WebDAV 简易登录器
     2024.10.26InfiniCLOUDWebDAV简易登录器  ;;2024.10.26InfiniCLOUDWebDAV简易登录器;;C:\APP\WinSCP\AHK\InfiniCLOUD.ahk;;WinSCP一键登录InfiniCLOUD的WebDAV文件服务的AutoHotkey脚本源代码#SingleInstance,force#Persistent;身份验证,请使用飞......
  • ctfshow web入门命令执行——web29-40题解
    web291.传入c参数来进行代码执行,payload: c=system("catfla*.php");  如图2.浏览器默认不显示php的标签所以需要右键查看源代码web30题目过滤了命令执行函数system,还可以用passthur(),过滤的字符可以用?代替单个字符。payload:?c=passthur("catfla?.p?p");查看源......
  • 【Web前端】JavaScript 对象基础
     JavaScript是一种以对象为基础的编程语言,操作数据时,实际都是在处理对象。可以使用简单的数据类型(如字符串、数字和布尔值)来实现一些功能,但深入了解JavaScript对象的运作,将使你能够编写更强大和灵活的代码。对象基础JavaScript中,对象是由一组键(或属性)和值组成的无......
  • PHP和Elixir在Web开发中的比较
    开篇直接回答问题:在Web开发中,PHP和Elixir两者都是具有特定优势的编程语言,但它们的设计哲学、性能、并发处理和生态系统各有不同。PHP以其易于学习和广泛的使用基础而广受欢迎,特别擅长于快速开发和部署传统的Web应用。而Elixir,作为一种较新的语言,提供了出色的并发处理能力和容......
  • python 访问openai assistant api(一)
    目录一、简介二、案例三、消息循环总结 一、简介使用Python访问OpenAIAssistantAPI(如GPT模型),你需要使用OpenAI提供的官方PythonSDK。官网介绍https://platform.openai.com/docs/api-reference/assistants目前只有简短的使用介绍,但是已经涵盖了所有需要注......
  • 如何在AWS上自动扩展Web应用
    摘要:AWS的自动扩展可以帮助您的Web应用根据实际使用量动态调整计算资源。这包括:1、监控流量及性能指标、2、设定弹性策略、3、配置启动模板、4、利用负载均衡器分配流量。其中,监控流量及性能指标是自动扩展的关键部分,AWS提供的CloudWatch服务能够实时监控应用程序的多个性能指标,这......
  • webRTC搭建:STUN 和 TURN 服务器 链接google的有点慢,是不是可以自己搭建
    如果使用Google提供的STUN/TURN服务器速度较慢,你完全可以自己搭建STUN和TURN服务器。这有助于提升网络连接速度和稳定性,特别是在需要穿透NAT或防火墙的网络环境下。下面是如何自己搭建STUN和TURN服务器的具体步骤:1.选择TURN/STUN服务器软件推荐使用Cot......