What does my API look like to external viewers
  • 14 Dec 2020
  • 1 Minute to read
  • Contributors
  • Comment
  • Dark
    Light
  • PDF

What does my API look like to external viewers

  • Comment
  • Dark
    Light
  • PDF

Article Summary

One of the things I struggle with a bit with Azure APIM is the holistic view of what my API looks like if I am an external viewer looking at it.

When you work in the Azure Portal you get a pretty interface that is nice and easy to work with but the problem is that the interface masks some of the key information about what your paths look like on the API so its difficult to know if its an API which is easy to understand to the external user.

With this in mind I have put together the below Powershell script which will give you an easy to see view on what your API looks like to external viewers.

$resourceGroupName = '[RESOURCE GROUP GOES HERE]'
$apimServiceName = '[API NAME GOES HERE]'

$apimContext = New-AzApiManagementContext -ResourceGroupName $global:resourceGroupName -ServiceName $global:apimServiceName
Write-Host 'APIM =' $apimContext.ServiceName

$apiList = Get-AzApiManagementApi -Context $apimContext

foreach($api in $apiList){
    #Write-Host $api.Name
    Write-Host "API: " $api.Path        
    Write-Host "`tName:" $api.Name

    $fullPath = $apimInstance.RuntimeUrl + '/' + $api.Path
    Write-Host "`tFull Path:" $fullPath

    Write-Host "`tOperations:"
    
    $operationList = Get-AzApiManagementOperation -Context $apimContext -ApiId $api.ApiId
    foreach($operation in $operationList){
        Write-Host "`t`t"$operation.Method ": " $operation.UrlTemplate
        Write-Host "`t`t`tName:" $operation.Name

        $fullPath = $apimInstance.RuntimeUrl + '/' + $api.Path + $operation.UrlTemplate
        Write-Host "`t`t`tFull Path:" $operation.Method':' $fullPath
        Write-Host ''
    }

    Write-Host ''
}
}

If I run this script it will give me a view of the API's and if you look at the below screen shot you can see what it would look like for the echo API.

image.png

This gives me an easy view across the API's so I can see all of the paths together and see if anything looks like it is not named correctly.


Was this article helpful?