Loading...

How to send an Azure REST API request

How to send an Azure REST API request

Sometimes, user will need to send out REST API request to manage their resources in Azure platform, for example, when the REST API is upgraded but corresponding PowerShell module or User Interface are not upgraded yet. In this blog, it will contain three main parts:

  • Common points of both ways to send request
  • Send request manually with User Interface such as Postman
  • Send request manually with command line, such as PowerShell in Windows and Curl in Linux

 

Common points of both ways to send request:

No matter user wants to send request by which way, the next three points are always the most important:

  1. The request URL and HTTP method
  2. The authorization
  3. The header and the request body (payload)

The request URL and HTTP method

From the official document, there will always be the information as following one. (Resources - List - REST API (Azure Resource Management) | Microsoft Learn as example here)

Jerry_0-1683619503555.png

It's easy to find out the HTTP method here is GET and the complete URL to be called. The only thing to pay attention is to verify if there is any part with "{}". If there is such kind of part, it means that it needs to be replaced by your own resource/environment data. For example, for the above REST API, when we call it, it will be like:

https://management.azure.com/subscriptions/5102xxxx-xxxx-xxxx-xxxx-xxxxa4473453/resources?api-version=2021-04-01

 

P.S. Please pay attention to the format. If the final request URL is like https://management.azure.com/subscriptions//5102xxxx-xxxx-xxxx-..., then this request must be failed.

 

The authorization

For different REST API servers, we need to use different ways to authenticate. For example, here are some special situations:

But most of the REST API requests in Azure will be sent to ARM (Azure Resource Manager). The most important point to identify this is the first part of the URL. If the first part of the URL is https://management.azure.com, then this must be an ARM REST API. For such kind of requests, we can always use the following way to authenticate.

Jerry_0-1683620056384.png

  • Make sure the mode is PowerShell, then after it automatically login, run command az account get-access-token. (For the users installing the Azure CLI in local machine, please run az login before running the above command)
  • Please copy out the value of the accessToken from the response and remove all the line breaker to make them as a simple but long word. Then, the header needed for the authorization will be with name Authorization and be with value Bearer {tokenvalue}. (The space between keyword Bearer and first letter of token value is necessary) For the above example, the header will be like:

 

Authorization: Bearer eyJ0......DSA

 

 

The header and the request body (payload)

This part is not always required. But for some REST API to create/update a resource, such as Resource Groups - Create Or Update - REST API (Azure Resource Management) | Microsoft Learn, there will be a request body or/and request header part with explanation. We can find out which headers/request body parts are necessary and what they stand for.

Jerry_2-1683620508723.png

 

Send request manually with User Interface such as Postman

To be able to follow this part, please kindly do confirm that the Postman is already installed in your computer. Postman can be downloaded from Download Postman | Get Started for Free

 

We need to setup the HTTP method and URL at first:

Jerry_3-1683620632785.png

 

Then setup the header used for authorization:

Jerry_4-1683620672714.png

 

Add headers and request body if they are required: (Added headers already showing in last image.)

Jerry_5-1683620778885.png

P.S. The request body of most Azure official REST API is blank or JSON format. 

 

Once all the above steps are done, we can simply click on send request button and see the response code, response time and response body if there is.

Jerry_6-1683620865655.png

 

Send request manually with command line, such as PowerShell in Windows and Curl in Linux

The way of sending request by command is similar to the above part. User only needs to make sure the important information mentioned in first part and put it into the command. The following part is the example script in both Windows and Linux system: (Using Resource Groups - Create Or Update - REST API (Azure Resource Management) | Microsoft Learn as example here)

PowerShell in Windows:

 

$URI = "https://management.azure.com/subscriptions/5102xxxx-xxxx-xxxx-xxxx-xxxxxx473453/resourcegroups/rgbypowershell?api-version=2021-04-01" $headers = [ordered]@{"Content-Type"="application/json"; "Authorization"="Bearer eyJ0eXAiOiJ..............ty9wdI5GmDqA"} $method = "PUT" $body = '{"location": "eastus"}' [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 $response = Invoke-WebRequest -URI $URI -Method $method -Headers $headers -Body $body

 

Result:

JerryZhangMS_1-1683863756800.png

JerryZhangMS_2-1683863866980.png

Curl in Linux:

curl -X PUT -H "Content-Type: application/json" -H "Authorization: Bearer eyJ0eX.....AA" -d '{"location": "westus3"}' https://management.azure.com/subscriptions/5102xxxx-xxxx-xxxx-xxxx-xxxxxx473453/resourcegroups/rgbycurl?api-version=2021-04-01

Result:

JerryZhangMS_1-1683868558497.png

JerryZhangMS_0-1683868526076.png

 

Published on:

Learn more
Azure PaaS Blog articles
Azure PaaS Blog articles

Azure PaaS Blog articles

Share post:

Related posts

The Impact of RedHat Linux 7 Extended Life Cycle Support on Azure Guest Patching Customers

The article discusses the impact of RedHat's Extended Life Cycle Support (ELS) phase announcement on Linux 7 versions. According to RedHat, Li...

5 hours ago

Terraform on Azure May 2024 Update

    Welcome to our April 2024 update! These blogposts will be covering everything we've gotten up to recently with Terraform on Azu...

5 hours ago

Azure DevOps Server 2022 Update 2 RC now available

The release candidate (RC) of Azure DevOps Server 2022.2 is now available for download. This release includes new features that have already b...

7 hours ago

Azure Verified Modules - Monthly Update [April]

In the April edition of the Azure Verified Modules update, the AVM team announces their upcoming quarterly community call scheduled for 21st M...

13 hours ago

Microsoft Purview compliance portal: Information Protection – Sensitivity labels protection policy support for Azure SQL, Azure Storage, and Amazon S3

Microsoft Purview Information Protection now supports label-based protection for Azure SQL, Azure Data Lake Storage, and Amazon S3 buckets. Wi...

15 hours ago

Centralized private resolver architecture implementation using Azure private DNS resolver

This article walks you through the steps to setup a centralized architecture to resolve DNS names, including private DNS zones across your Azu...

21 hours ago

Azure VMware Solution - Using Log Analytics With NSX-T Firewall Logs

Azure VMware Solution How To Series: Monitoring Azure VMware Solution   Overview Requirements Lab Environment Tagging & Groups Kusto ...

1 day ago

Troubleshoot your apps faster with App Service using Microsoft Copilot for Azure | Azure Friday

This video provides you with a comprehensive overview of how to troubleshoot your apps faster with App Service utilizing Microsoft Copilot for...

4 days ago

Looking to optimize and manage your cloud resources? Join our Azure optimization skills challenge!

If you're looking for an effective way to optimize and manage your cloud resources, then join the Azure Optimization Cloud Skills Challenge or...

4 days ago
Stay up to date with latest Microsoft Dynamics 365 and Power Platform news!
* Yes, I agree to the privacy policy