Skip to content

Commit 335e4a3

Browse files
committed
Merge branch 'main' into phecke-plugin-updates
2 parents 5823e0e + bec9312 commit 335e4a3

File tree

51 files changed

+9690
-9516
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+9690
-9516
lines changed

.openpublishing.redirection.json

Lines changed: 9002 additions & 8986 deletions
Large diffs are not rendered by default.

powerapps-docs/developer/data-platform/build-and-package.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Build and package plug-in code
33
description: Learn about building plug-in code into assemblies and packages for later registration and upload to the Microsoft Dataverse service.
4-
ms.date: 02/29/2024
4+
ms.date: 03/18/2024
55
ms.reviewer: pehecke
66
ms.topic: article
77
author: divkamath
@@ -118,6 +118,8 @@ If you're adding another project to the Visual Studio solution, say a class libr
118118
1. You should see the line `<Project Sdk="Microsoft.NET.Sdk">` in the project file. Change the TargetFramework property to be `<TargetFramework>net462</TargetFramework>` and save the file.
119119
1. Verify your solution builds, and you're done.
120120

121+
More information: [.NET Project SDKs](/dotnet/core/project-sdk/overview#project-files)
122+
121123
### Don't depend on System.Text.Json
122124

123125
Because the Microsoft.CrmSdk.CoreAssemblies NuGet package has a [dependency](https://www.nuget.org/packages/Microsoft.CrmSdk.CoreAssemblies#dependencies-body-tab) on System.Text.Json, you're able to refer to [System.Text.Json](xref:System.Text.Json) types at design time. However, the System.Text.Json.dll file in the sandbox run-time can't be guaranteed to be the same version that you reference in your project. If you need to use `System.Text.Json`, you should use the dependent assembly feature and explicitly include it in your NuGet package.

powerapps-docs/developer/data-platform/custom-api.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ There are several different ways to create a custom API:
3333
|---------|---------|
3434
|[Plug-in registration tool](create-custom-api-prt.md)|An easy-to-use GUI tool integrated with tools used to develop plug-ins.|
3535
|[Power Apps](create-custom-api-maker-portal.md)|Using forms to enter data. You don't need to install a separate tool, you must create a separate record for each part of the custom API.|
36-
|[With Code](create-custom-api-with-code.md)|After you understand the data model, you can create custom API quickly using Postman. Or you can build your own experience to create custom API.|
36+
|[With Code](create-custom-api-with-code.md)|After you understand the data model, you can create custom API quickly using an API Client like Postman or [Insomnia](webapi/insomnia.md). Or you can build your own experience to create custom API.|
3737
|[With solution files](create-custom-api-solution.md)|When you use Application Lifecycle Management (ALM) tools, you can create or modify custom API definitions with XML files in a solution that is included in your source code repository. The custom API is created when you import the solution generated from your source code.|
3838

3939
> [!NOTE]
@@ -186,7 +186,7 @@ A custom API creates a new message that can be invoked via the Web API or Datave
186186

187187
### Invoking custom APIs from the Web API
188188

189-
While testing, you can invoke your API using PostMan. Use the steps described in [Set up a Postman environment](webapi/setup-postman-environment.md) to set up a PostMan environment that generates the access token you need. Then, apply the steps described in [Use Web API actions](webapi/use-web-api-actions.md) if your API is an action. If it's a function, use the steps in [Use Web API functions](webapi/use-web-api-functions.md).
189+
While testing, you can invoke your API using an API client like Postman or Insomnia. Use the steps described in [Use Insomnia with Dataverse Web API](webapi/insomnia.md) to set up a Insomnia environment that generates the access token you need. Then, apply the steps described in [Use Web API actions](webapi/use-web-api-actions.md) if your API is an action. If it's a function, use the steps in [Use Web API functions](webapi/use-web-api-functions.md).
190190

191191
See the following examples:
192192

powerapps-docs/developer/data-platform/debug-plug-in.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ The JSON results will be returned to your browser like so:
7676
```
7777

7878
> [!TIP]
79-
> This works best if you install a browser plug-in that will format the returned JSON. Or you may want to use Postman. More information: [Use Postman with the Web API](webapi/use-postman-web-api.md)
79+
> This works best if you install a browser plug-in that will format the returned JSON. Or you may want to use an API client like Postman or [Insomnia](webapi/insomnia.md), or you may want to use [VS Code with PowerShell](webapi/quick-start-ps.md).
8080
>
8181
> You may prefer to use the [XrmToolbox Plugin Trace Viewer](https://www.xrmtoolbox.com/plugins/Cinteros.XrmToolBox.PluginTraceViewer/). This community tool is not supported by Microsoft. If you have questions pertaining to this tool, contact the publisher.
8282

powerapps-docs/developer/data-platform/discovery-service.md

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Discover user organizations (Microsoft Dataverse) | Microsoft Docs" # Intent and product brand in a unique string of 43-59 chars including spaces
33
description: "Your client application may connect to multiple Dataverse environments. Use the Global Discovery Service to find which environments the user of your application can access."
4-
ms.date: 07/18/2022
4+
ms.date: 03/14/2024
55
ms.reviewer: pehecke
66
ms.topic: article
77
author: ImadYanni # GitHub ID
@@ -63,41 +63,39 @@ If the calling user has access to no instances, the response simply returns an e
6363

6464
## Authentication
6565

66-
The calling user must aquire an OAuth 2.0 token from Microsoft Entra ID, and then add that token in the Authorization header of the API calls. More information: [Use OAuth authentication with Microsoft Dataverse](authenticate-oauth.md).
66+
The calling user must acquire an OAuth 2.0 token from Microsoft Entra ID, and then add that token in the Authorization header of the API calls. More information: [Use OAuth authentication with Microsoft Dataverse](authenticate-oauth.md).
6767

6868
### CORS support
6969

7070
The Discovery Service supports the CORS standard for cross-origin access. For more information about CORS support see [Use OAuth with Cross-Origin Resource Sharing to connect a Single-Page Application](oauth-cross-origin-resource-sharing-connect-single-page-application.md).
7171

72-
### Use Postman to connect to the Global Discovery Service
72+
### Use Insomnia to connect to the Global Discovery Service
7373

74-
You can use the same approach described for the Dataverse Web API here: [Set up a Postman environment](webapi/setup-postman-environment.md), but instead of the environment variables described in that topic, use the following to access the commercial cloud.
74+
You can use the same approach described for the Dataverse Web API here: [Use Insomnia with Dataverse Web API](webapi/insomnia.md), but instead of the environment variables described in that topic, use the following to access the commercial cloud.
75+
76+
```json
77+
{
78+
"cloudUrl": "https://globaldisco.crm.dynamics.com",
79+
"globalDiscoUrl": "{{cloudUrl}}/api/discovery/v2.0/",
80+
"redirecturl": "https://localhost",
81+
"authurl": "https://login.microsoftonline.com/common/oauth2/authorize?resource={{cloudUrl}}",
82+
"clientid": "51f81489-12ee-4a9e-aaae-a2591f45987d"
83+
}
84+
```
7585

76-
|Variable |Initial Value |
77-
|---------|---------|
78-
|`cloudUrl`|`https://globaldisco.crm.dynamics.com`|
79-
|`globalDiscoUrl`|`{{cloudUrl}}/api/discovery/v2.0/`|
80-
|`clientid`|`51f81489-12ee-4a9e-aaae-a2591f45987d`|
81-
|`authurl`|`https://login.microsoftonline.com/common/oauth2/authorize?resource={{cloudUrl}}`|
8286

83-
Then, in the Postman **Authorization** tab, set or verify the following values:
87+
Then, in the **Authorization** tab, choose **OAuth 2** and set or verify the following values:
8488

8589
|Field |Value |
8690
|---------|---------|
87-
|**Type**|OAuth 2.0|
88-
|**Add authorization data to** |Request Headers|
89-
|**Header Prefix**|Bearer|
90-
|**Grant Type**|Implicit|
91-
|**Callback URL**|`http://localhost`|
92-
|**Auth URL**|`{{authurl}}`|
93-
|**Client ID**|`{{clientid}}`|
94-
|**Client Authentication**|Send as Basic Auth header|
95-
96-
Use `{{globalDiscoUrl}}` as the **Request URL** and in the **Authorization** tab, click **Get New Access Token**.
91+
|**GRANT TYPE**|Implicit|
92+
|**AUTHORIZATION url**|`_.authurl`|
93+
|**CLIENTID**|`_.clientid`|
94+
|**REDIRECT URL**|`_.redirecturl`|
9795

98-
You should now be able to query the Global Discovery Service using Postman.
96+
Use `GET _.globalDiscoUrl` as the **Request URL** and select **Send**.
9997

100-
More information: [YouTube: Get started using Postman with Microsoft Dataverse Web API](https://youtu.be/HpUj11yU0fY)
98+
You should now be able to query the Global Discovery Service using Insomnia.
10199

102100
## Service Documents
103101

powerapps-docs/developer/data-platform/org-service/samples/export-data-fetchxml-annotation-custom-api-sample.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ You can use either the Web API or the Dataverse SDK for .NET to use the `sample_
188188

189189
### [Web API](#tab/webapi)
190190

191-
To use the `sample_ExportDataUsingFetchXmlToAnnotation` custom API with the Web API, send a `POST` request to the API endpoint. You can use Postman to send this request. More information: [Set up a Postman environment](../../webapi/setup-postman-environment.md)
191+
To use the `sample_ExportDataUsingFetchXmlToAnnotation` custom API with the Web API, send a `POST` request to the API endpoint. You can use Insomnia to send this request. [Use Insomnia with Dataverse Web API](../../webapi/insomnia.md)
192192

193193
**Request:**
194194

@@ -272,7 +272,7 @@ You can use either the Web API or the Dataverse SDK for .NET to use the `sample_
272272

273273
### [Web API](#tab/webapi)
274274

275-
To use the `sample_CleanupExportedDataAnnotations` custom API with the Web API, send a `POST` request to the API endpoint. You can use Postman to send this request. More information: [Set up a Postman environment](../../webapi/setup-postman-environment.md)
275+
To use the `sample_CleanupExportedDataAnnotations` custom API with the Web API, send a `POST` request to the API endpoint. You can use Insomnia to send this request. [Use Insomnia with Dataverse Web API](../../webapi/insomnia.md)
276276

277277
**Request:**
278278

powerapps-docs/developer/data-platform/org-service/samples/issystemadmin-customapi-sample-plugin.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ This custom API is defined with the following data:
7575
}
7676
```
7777

78-
You can use this data to create the custom API using Postman and the Web API by following the example here: [Create a custom API with code](../../create-custom-api-with-code.md).
78+
You can use this data to create the custom API using [Insomnia and the Web API](../../webapi/insomnia.md) by following the example here: [Create a custom API with code](../../create-custom-api-with-code.md).
7979

8080
For information about the values passed see these topics: [CustomAPI tables](../../custom-api-tables.md)
8181

powerapps-docs/developer/data-platform/search/overview.md

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,9 @@ There are also two operations you can use to understand whether search is enable
8282
|`searchstatistics`<br />[searchstatistics Function](xref:Microsoft.Dynamics.CRM.searchstatistics)<br />`/api/search/v2.0/statistics`|Provides organization storage size and document count.<br /> See [Dataverse Search statistics](statistics-status.md#statistics)|
8383
|`searchstatus`<br />[searchstatus Function](xref:Microsoft.Dynamics.CRM.searchstatus)<br />`/api/search/v2.0/status`|Search status of an Organization.<br /> See [Dataverse Search Status](statistics-status.md#status) |
8484

85-
## Use Postman with Dataverse search
85+
## Use Insomnia with Dataverse search
8686

87-
If you have used Postman with Dataverse Web API, you know how useful it's to try using the APIs. We have some instructions about setting up a Postman environment to authenticate with the Dataverse Web API here: [Set up a Postman environment](../webapi/setup-postman-environment.md).
87+
If you have used Insomnia with Dataverse Web API, you know how useful it's to try using the APIs. We have some instructions about setting up a Insomnia environment to authenticate with the Dataverse Web API here: [Use Insomnia with Dataverse Web API](../webapi/insomnia.md)
8888

8989
You can use the same instructions with the search operations using Web API functions and actions. If you want to use the native search 2.0 endpoint, change these two environment variables:
9090

@@ -93,33 +93,6 @@ You can use the same instructions with the search operations using Web API funct
9393
|`version`|`9.2`|`2.0`|
9494
|`webapiurl`|`{{url}}/api/data/v{{version}}/`|`{{url}}/api/search/v{{version}}/`|
9595

96-
### Extract response JSON with Postman
97-
98-
Each of the search operations returns JSON that has a `response` property. The `response` property is an escaped string that contains JSON data. It's difficult to read this string value, but you can use the [Postman Visualize feature](https://learning.postman.com/docs/sending-requests/visualizer/) to transform this string value into readable JSON.
99-
100-
1. In your Postman request select the **Tests** tab and enter the following script:
101-
102-
```javascript
103-
let responseString = JSON.stringify(JSON.parse(pm.response.json().response),null,1);
104-
105-
template = '<pre>{{response}}</pre>';
106-
107-
pm.visualizer.set(template, {
108-
response: responseString
109-
});
110-
```
111-
112-
1. Execute your request and select the **Visualize** button.
113-
114-
You can now see the unescaped JSON data returned in the `response` property.
115-
116-
:::image type="content" source="../media/postman-query-visualize-script.png" alt-text="Postman query with test script to extract JSON from escaped string":::
117-
118-
More information:
119-
120-
- [Postman Learning Center: Visualizing responses](https://learning.postman.com/docs/sending-requests/visualizer/)
121-
- [Postman Learning Center: Visualizing responses > Rendering HTML](https://learning.postman.com/docs/sending-requests/visualizer/#rendering-html)
122-
12396

12497
## Detect if search is enabled
12598

powerapps-docs/developer/data-platform/webapi/TOC.yml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -93,14 +93,8 @@
9393
href: web-api-metadata-operations-sample.md
9494
- name: Web API table schema operations sample (C#)
9595
href: samples/webapiservice-metadata-operations.md
96-
- name: Use Postman with Web API
97-
items:
98-
- name: Get started with Postman
99-
href: use-postman-web-api.md
100-
- name: Setup a Postman environment
101-
href: setup-postman-environment.md
102-
- name: Use Postman to perform operations
103-
href: use-postman-perform-operations.md
96+
- name: Use Insomnia with Web API
97+
href: insomnia.md
10498
- name: Use PowerShell and Visual Studio Code with Web API
10599
href: use-ps-and-vscode-web-api.md
106100
- name: Client-side JavaScript using Web API in model-driven apps

powerapps-docs/developer/data-platform/webapi/get-started-dynamics-365-web-api-csharp.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@ To learn more, please explore the [Web API Samples (C#)](web-api-samples-csharp.
2929

3030
[Perform operations using the Web API](perform-operations-web-api.md)
3131
[Web API Samples (C#)](web-api-samples-csharp.md)
32-
[Set up a Postman environment](setup-postman-environment.md)
32+
[Use Insomnia with Dataverse Web API](insomnia.md)
3333

3434
[!INCLUDE[footer-include](../../../includes/footer-banner.md)]

0 commit comments

Comments
 (0)