Migrating from Mulesoft to Azure APIM - azure

There is possibly an option to export the Mulesoft assets into OAS / RAML file, which can then be imported into Azure APIM.
But is it even possible to extract all the relevant API specifications like API, Operations, Policies etc. that is needed by Azure APIM to create APIs using the OAS file / url import ??
I'm trying to find a way to migrate from Mulesoft APIs to Azure APIM based administration, but didn't come across a proper way of doing it end to end yet.
Any directions would help.

OAS (OpenAPI Specification) can be included to Azure API Management by importing the definition file by downloading it from Mulesoft.
While migrating the API we need to make sure about API URL Suffix to our desired API Path.
Below are few steps from Azure APIM to add the OAS:
After creation of APIM, we can Add API.
We will be displayed with multiple options in adding the API like App Service, Function App, Logic App.
Refer to the blog for details steps in achieving the task of transforming API to Azure APIM.

Related

Deploying an WebAPI project (including swagger) into Azure Function

I know that the Azure function supports HTTP trigger and we can write a function that can be exposed like an API. I'm looking for an option to host a complete C# WebAPI project (multiple Rest endpoints including swagger definition) into a single Azure function.
Is this feasible? and supported? I see this scenario is completely supported in AWS Lambda. Where we can deploy a whole WebAPI project into a single lambda. Here is the demo of
the same.
I have watched the provided Video and I observed the same functionality is also available in Azure Functions.
As Direct way is not available like publishing the Web API to the Functions but migration of Web API to Functions is possible if the Web API is authenticated with any option like Open API, etc and using the APIM Service we can manage all the operations in it.
And as per the Microsoft Update, Startup.csand program.cs is unified to the program.cs file. So, I have added the required swagger configuration code in the file program.cs and tested it, working successful locally.
Another approach is you can call the Web APIs from Azure Functions securely, here is one of my approaches along with few other ways to do it.
Refer to #VovaBilyachat alternative solution on publishing .NET Core Web API to Azure that provides the glimpse of using Containers instead Functions.

Swagger connected to Azure ..now what?

I connected my swagger PetStore api to Azure using swagger Azure API Management integration.
Now that it made it in azure; Where do I implement the actual logic of querying my azure database etc?
Using swagger if I generate a Node server stub I get the following generated. But these are not available if I use API management integration.
In the Backend section I only see Logic Apps and endpoint options. I tried the Logic App stuff but it seems I need 50 logic apps if I have api that large...Am I missing something?
Maybe you need to use SwaggerHub.
The Swagger UI you are currently using belongs to the community version and should not support direct integration. Assuming there are 100 api interfaces, you need to add 100 times in azure apim.

Automate updates from Azure Function App to API Management

Given that Azure Functions can be imported to API Management as described here, how do we keep the API up to date when Azure Functions change? For example, if the Function signature changes or a function is added or removed. How can this process be automated, so once the Azure Functions change, the changes are reflected in the API?
Microsoft's API Management team has a proposed solution here, but it's not clear to me how this solution can be applied with Azure Function App as the backed-end for the API.
Yes, you need to make it as part of your release process. After publishing the new version of Azure Functions, you'll import the new specification into API Management.
https://marketplace.visualstudio.com/items?itemName=stephane-eyskens.apim
Once you import and publish an API in APIM it will not be updated automatically. So, even though the developers released a new build, the consumers would still consume the older version of the API published in APIM.
Try to use Azure DevOps pipelines for continuous delivery of APIs to Azure API Management Service.
Add a create/update task, which will create or update the API in APIM based on the Swagger file and also set different API policies. This task will also update the API in APIM in case the Dev guy will create new API methods or remove API methods.

How to automate the update of Web Service URL in Azure API management

How to automate the update of Web Service URL in Azure API management when CI/CD pipeline executes resulting in change of external IP.
You need to use the Open API specs from your APIs and use REST API / Powershell to update or add routes in API Management. There's also an extension but I am not sure if it's updated or not. You can read more about in here:
https://github.com/Azure/azure-api-management-devops-resource-kit

CI/CD / Rebuild a Azure APIM developer portal content

In the Azure APIM, is it possible to manage the content in a programmatic way -let's say the REST API or SDK- when I have some changes in Developer Portal content?
I saw there are some articles mentioned to use the iFrame but it is still required to have manual change in portal. For CI/CD, the requirement is make everything as code. So when writer updated / create / rebuild content in the APIM platform, we can use the Jenkins or another tools to make it change.
Currently it is not possible to natively manage developer's portal content programmatically, with the exception of data generated by API Management (e.g., API descriptions or API operations are fetched live and API Management's API call response is mapped to UI).
However, there are plans to allow for more control and automation with regards to developer portal content, customizations and deployments.

Resources