Archive
[Step by Step] Postman tool with Microsoft Dataverse Web API
Couple of years ago, I’ve blogged Postman tool using Dynamics 365 online. In this article, lets go through the steps to connect Postman tool with Dataverse Web API.
While most of the steps are unchanged, there is a simplified way now to connect to Dataverse Web API with out the need of registering App in Azure AD. Lets get started.
Pre-requisites:
- Power Apps Environment (Subscribe to 30 days trial, if you have not one).
- Postman Desktop App. (Download here)
- Note: These steps will not work with Postman web version.
Get Dataverse Environment URL:
- Connect to Power Apps portal.
- Select the ‘Environment’ you wish to connect from Postman tool.
- Click on ‘Settings -> Advanced Settings’
- Copy the URL up to the ‘dynamics.com/’ from the new window as shown below.
- Add ‘.api’ before ‘.crm.dynamics.com’ to the URL.
- My Web API url looks as https://orgc721edd9.api.crm.dynamics.com/.
- Copy and Save this URL, which would be used in next steps.
Set up Postman Environment:
We would need ‘Workspace’ and ‘Environment’ to get started with Postman.
- Open the Postman tool and create a new ‘Workspace’ if not having already.
- Click on create a new ‘Environment’.
- In the ‘Add Environment’ screen, we need to add Variables related to ‘Dataverse’ which helps Postman to connect Dataverse Web API.
- Following 6 variables need to be configured.
- url : Dataverse environment URL captured in previous section.
- clientid: ’51f81489-12ee-4a9e-aaae-a2591f45987d’. This is special ID which allows to authenticate with out the need of registering App in Azure Active Directiry (AAD).
- version: 9.2
- webapiurl: {{url}}/api/data/v{{version}}/
- callback: https://callbackurl
- authurl: https://login.microsoftonline.com/common/oauth2/authorize?resource={{url}}
- Lets add the first Variable “url“. In the ‘INITIAL VALUE’ paste the Dataverse environment url copied in previous section.
- Repeat the step for next 5 variables and looks as below. Click ‘Add’ to save the Postman ‘Environment’.
Authorize Postman to Dataverse Environment:
Now that we have Postman Environment ready with required variables. Lets authorize and connect the Postman to Dataverse Web API. For that we need to complete ‘Authorization‘ and generate a new ‘Access Token’.
- Select to the new Postman ‘Environment’ created in previous section.
- Create a new GET ‘Request’ and select {{webapiurl}} variable as url.
- Click on ‘Authorization’ tab and select ‘TYPE’ as ‘OAuth 2.0’ and click on ‘Get New Access Token’.
- Provide details as below in the ‘Get New Access Token’ screen and click ‘Request Token’.
- In the next screen, provide the Office 365 credentials.
- Post successful authentication, a new ‘Access Token’ gets generated as below. Click ‘Use Token’.
- ‘Access Token’ expires every 1 hour and you would get “401 Unauthorized’ exception upon expiry.
- Click on ‘Get New Access Token’ if the Token expires to get a new Access Token. From 2nd time, Token generates instantly without any further sign-in.
Connect Postman to Dataverse Web API and query:
As we completed ‘Authorization’ and got the ‘Access Token’, we are good to query Dataverse API.
- Create a new GET ‘Request’ and select {{webapiurl}} variable as url.
- In the ‘Authorization’ tab, select the ‘Access Token’ generated and click ‘Send’.
- You should get the Response as below with 200 Status code.
- Below is the sample to fetch Top 3 Account records.
- Refer this documentation to Use Postman to perform operations with the Web API.
- Refer this documentation for more details.
🙂
Post a File and Data to SandBlast API using Postman and generate C# code
We got a requirement to use SandBlast Threat Extraction process, for cleansing the files.
SandBlast Threat Extraction, is a solution by ‘Check Point’ company, which removes exploitable content, including active content and embedded objects, reconstructs files to eliminate potential threats.
‘Threat Extraction’ Upload API, requires following parameters
- Header
- Authorization
- Content-Type
- Body
- File Content
- request (This is string)
If you notice, we need to pass ‘File’ as well as ‘Data’ to the API.
As of now, Sandblast doesn’t have a native .Net library to make API calls. So I’ve used Postman tool as a starting point for my development.
Below is the step-by-step, to pass ‘File’ and ‘Data’ in request ‘Body’, using Postman
- Open Postman tool
- Create a new ‘Request’
- Set the method as ‘Post’ and URL.
- From the ‘Body’ tab, select ‘form-data’ option
- To pass the ‘File’, add a new ‘KEY’ of type ‘File’ and browse the file in ‘VALUE’ parameter.
- To pass the ‘Data’, add a new ‘KEY’ of type ‘Text’ and set the ‘VALUE’
Generate C# code from the Request:
- Postman has an amazing feature to generate the code in your required language.
- Click on ‘Code’ link and for C#, choose ‘C# (RestSharp)’ option.
- In your C# project, add RestSharp NuGet package.
- Paste the code in your class file and you are good to go now.
If anyone having struggling to use Sandblast API’s, post in comments section and I will address.
🙂
[Step by Step] Postman tool to test Dynamics 365 online Web API
In this article, lets see how to connect and test Dynamics 365 Web API requests using Postman tool, step by step along with troubleshooting steps.
Note: Refer article for steps to connect to Dataverse Web API from Postman tool.
Those who are not familiar with Postman tool, it is a request composer tool, which allows you to authenticate to your Dynamics 365 instance, compose Web API requests, send them, and view response. Link to download
Prerequisites:
- Download Postman tool
- Dynamics 365 online instance. (Subscribe to 30 days trial, if you have not one)
- Azure Active Directory Portal (You need to login with your Office 365 Credentials)
Register App in Azure Active Directory:
As a first step, you need to register an App in Azure Active Directory (i.e., oAuth) by following below steps
- Connect to the Azure Active Directory (AD) Portal with your Office 365 credentials.
- Register a new Dynamics 365 App by following steps mentioned here
- Once you are done with App registration, copy ‘Application ID’ and ‘Home page’ values, which you need to use next steps.
Setup your Postman tool:
Create ‘Environment’
- Create a new Postman ‘Environment’ with below variables. This is one time activity for a single D365 instance.
- url : Your Dynamics 365 URL
- clientid : ‘Application ID’ from Azure AD, generated in above section.
- version : Dynamics version
- webapiurl : Set this to {{url}}/api/data/v{{version}}/
- callback : ‘Home page’ value from Azure AD, generated in above section.
- authurl : Set this to https://login.microsoftonline.com/common/oauth2/authorize?resource={{url}}
- I created a new ‘Environment’ with name ‘DynamicsCRM’ and it looks as below
Generate oAuth Access Token:
Post ‘Environment’ creation, we need to generate oAuth Access Token. This is one time activity for a single D365 instance.
- Make sure you select ‘Environment’ created in previous section. In my case its ‘DynamicsCRM’.
- Under ‘Authorization’ tab, set ‘Type’ to ‘oAuth 2.0’ and click on ‘Get New Access Token’.
- In the ‘GET NEW ACCESS TOKEN SCREEN’ make sure you set values as below.
- Click ‘Request Token’ and system will prompt you for credentials, pass your O365 credentials.
- When you click ‘Next’, you may encounter “response_type ‘token’ is not enabled for the application” exception.
- To fix this, make sure in your Azure AD Application’s manifest “oauth2AllowImplicitFlow” property is set to ‘true’
- You may also encounter “The reply url specified in the request does not match the reply urls configured for the application“.
- To fix this, make sure you set the Postman’s ‘Environment’ -> ‘callback’ variable set correctly.
- Click ‘Continue’ to complete the ‘Access Token’ generation process.
- On successful ‘Access Token’ generation, you would get the screen as below.
- Click ‘Use Token’.
That’s it! we are done with settings and its time to test the Dynamics API’s with Postman
Test by executing ‘WhoAmI’ request:
- Make sure you select the right ‘Environment’ and generated your ‘Access Token’.
- Select ‘GET’ operation and set the URL as {{webapiurl}}WhoAmI
- Click ‘Send’
- You should get “200 OK” response up on success.
- You may get “401 Unauthorized” response.
- To fix this, make sure you set “Add authorization data to” to “Request Headers”.
🙂