Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions apim-lab/0-prerequisites/prerequisite-0-1-technical.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@ nav_order: 1
- [Star Wars API](https://swapi.dev/)
- [Calculator API](http://calcapi.cloudapp.net/calcapi.json)
- For the DevOps part, you need to have access to a valid [Azure DevOps](https://dev.azure.com) organization.

**VIDEO**: There is a video example that walks through getting started which includes technical requirements that you can find [HERE](https://youtu.be/ZyPIu8oeEYI?si=F-6RXHiG3J85E3cM)
4 changes: 3 additions & 1 deletion apim-lab/1-apim-creation/apim-creation-1-1-instantiate.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,6 @@ Please do not modify other settings. Specifically, the *Virtual network* tab sho

Once started, it is not necessary to remain on this page or in the Azure Portal. If you entered a valid email address, you will receive a provisioning completion email:

![APIM creation email](../../assets/images/apim-creation-email.png)
![APIM creation email](../../assets/images/apim-creation-email.png)

**VIDEO**: There is a video example that walks through creation and verification that you can find [HERE](https://youtu.be/LFKnYz5PnvU?si=mWGUtL1WGr1hFQRi)
4 changes: 3 additions & 1 deletion apim-lab/1-apim-creation/apim-creation-1-2-verify.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,6 @@ Accessing the link in your browser should now show you no error message. In fact
Alternatively, you can issue a verbose (`-v`) CURL command against the **Echo API** and observe the `200` Success:
`curl -v https://<your azure api management instance>.azure-api.net/echo/resource?param1=sample`

![APIM Echo API Curl Success](../../assets/images/apim-echo-api-test-6.png)
![APIM Echo API Curl Success](../../assets/images/apim-echo-api-test-6.png)

**VIDEO**: There is a video example that walks through creation and verification that you can find [HERE](https://youtu.be/LFKnYz5PnvU?si=mWGUtL1WGr1hFQRi)
Original file line number Diff line number Diff line change
Expand Up @@ -111,3 +111,5 @@ It's now time to test one of the published APIs.
![APIM Developer Portal Try API](../../assets/images/apim-developer-portal-try-api-1.png)

![APIM Developer Portal Try API](../../assets/images/apim-developer-portal-try-api-2.png)

**VIDEO**: There is a video example that walks through publishing the developer portal that you can find [HERE](https://youtu.be/E2T23XlP8iI?si=ueuEwEYJ12B5o4MX)
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ It is possible to self-host and manage your own Developer Portal outside of an A

Before you make your portal available to visitors, you should personalize the automatically-generated content. Recommended changes include the layouts, styles, and the content of the home page. This is documented at <https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-developer-portal-customize>.

A video on customization is available at <https://www.youtube.com/watch?v=5mMtUSmfUlw>.
**VIDEOS**: There are videos on customization available at <https://www.youtube.com/watch?v=5mMtUSmfUlw> and <https://youtu.be/KEe3pPE0crM?si=4gbhrmTe0fbd3qz_>

![APIM Developer Portal Config](../../assets/images/apim-developer-portal-config-1.png)

Expand All @@ -34,4 +34,6 @@ Look at the available notifications and notifications templates which are custom

![APIM Notification Templates](../../assets/images/apim-notification-templates.png)

![APIM Notification Template Edit](../../assets/images/apim-notification-edit.png)
![APIM Notification Template Edit](../../assets/images/apim-notification-edit.png)

**VIDEO**: There is a video example that walks through email notifications that you can find [HERE](https://youtu.be/UnTkA555AgE?si=SfhqWvrpCgil3Hqe)
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,6 @@ A product contains one or more APIs as well as a usage quota and the terms of us

Back in the private browsing session, browse to **Products** and observe the new **Gold Tier**.

![APIM Developer Portal Added Product](../../assets/images/apim-developer-portal-added-product.png)
![APIM Developer Portal Added Product](../../assets/images/apim-developer-portal-added-product.png)

**VIDEO**: There is a video example that walks through product management that you can find [HERE](https://youtu.be/uZ4E5fas-lY?si=sPhyud4hmBV0YvPk)
2 changes: 2 additions & 0 deletions apim-lab/3-adding-apis/adding-apis-3-1-from-scratch.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,5 @@ Instead of developing an API, for this lab you will use the existing [*Star Wars
- Examine the successful `200` response with `C-3PO`'s details in the response body payload.

![APIM Developer Portal Star Wars Try It](../../assets/images/apim-developer-portal-star-wars-try-it-3.png)

**VIDEO**: There is a video example that walks through creating an API from scratch that you can find [HERE](https://youtu.be/G5-SMKFwpK4?si=CvNeZYjCbgHrzwVd)
4 changes: 3 additions & 1 deletion apim-lab/3-adding-apis/adding-apis-3-2-open-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,6 @@ As a demo we will use an API that offers a simple calculator service : [Calc API

This is likely a mixed-content CORS error in which you are attempting a call to an Azure API Management endpoint that is only set up for *HTTP*. It fails as the Developer Portal runs on *HTTPS*. Please check the setup steps above for the _URL scheme_.

![APIM Calculator CORS Error](../../assets/images/apim-calc-cors-error.png)
![APIM Calculator CORS Error](../../assets/images/apim-calc-cors-error.png)

**VIDEO**: There is a video example that walks through importing APIs that you can find [HERE](https://youtu.be/3vz-xMCr12s?si=n4BCVHrw-V_LOYYB)
2 changes: 2 additions & 0 deletions apim-lab/3-adding-apis/adding-apis-3-3-calling-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,3 +92,5 @@ https://YOUR_APIM.azure-api.net/colors/random?key=UNLIMITED_PRIMARY__KEY_HERE
- Try the same **Starter** URL directly in your web browser and notice the error status / message returned:

![APIM Colors API URL in Browser for Starter Product 429 ](../../assets/images/apim-color-api-url-in-browser-starter-product-429.png)

**VIDEO**: There is a video example that walks through calling APIs that you can find [HERE](https://youtu.be/1bNhXwu5nIc?si=nJkSpkSCm4kpWhK6)
4 changes: 3 additions & 1 deletion apim-lab/4-policy-expressions/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,6 @@ Editing **Inbound processing / Outbound processing / Backend**:

![APIM Inbound Processing](../../assets/images/apim-inbound-processing.png)

![APIM Inbound Form Editor](../../assets/images/apim-inbound-form-editor.png)
![APIM Inbound Form Editor](../../assets/images/apim-inbound-form-editor.png)

**VIDEO**: There is a video example that walks through APIM polices that you can find [HERE](https://youtu.be/P1pO22eEYwM?si=VGFM_jCvr-aadJzC)
Original file line number Diff line number Diff line change
Expand Up @@ -150,4 +150,6 @@ Query string parameters and headers can be easily modified prior to sending the

![APIM Policy Amend Backend Call](../../assets/images/apim-trace-amend-backend-1.png)

![APIM Policy Amend Backend Call](../../assets/images/apim-trace-amend-backend-2.png)
![APIM Policy Amend Backend Call](../../assets/images/apim-trace-amend-backend-2.png)

**VIDEO**: There is a video example that walks through transformation polices that you can find [HERE](https://youtu.be/qSn1oenDRXU?si=ztuH3tLrnGpPJwrr)
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,6 @@ nav_order: 4
"name": "x-request-received-time",
"value": "12/30/2021 6:10:47 PM"
}
```
```

**VIDEO**: There is a video example that walks through Named Values that you can find [HERE](https://youtu.be/qjT4Usqqj90?si=e8sTIx1iWftw__WY)
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,5 @@ Mocking in Azure API Management is a useful mechanism for API consumers to inter
- Invoke the API to receive a `200` success with the mocked film data.

![APIM Policy Mock Response](../../assets/images/apim-policy-mock-response.png)

**VIDEO**: There is a video example that walks through mocking APIs that you can find [HERE](https://youtu.be/YGIYnO69cQk?si=vUnIlytksXPvevFj)
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,5 @@ An optional lab to connect to Microsoft Teams:
- Look for a received message in your Teams channel:

![Teams APIM Message](../../assets/images/teams-apim-message.png)

**VIDEO**: There is a video example that walks through using the Send One Way policy that you can find [HERE](https://youtu.be/4IrEHJadtjI?si=Y8_WRdh8Kyo1w5xg)
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,6 @@ The ability to terminate a response gracefully is of importance in a number of c

### Clean Up

Now that you have seen how to gracefully terminate a request with a response, it is time to clean up the code to prevent a downstream impact in subsequent labs. **Please remove the `<choose>` logic above to let all requests flow again, then save the changes.**
Now that you have seen how to gracefully terminate a request with a response, it is time to clean up the code to prevent a downstream impact in subsequent labs. **Please remove the `<choose>` logic above to let all requests flow again, then save the changes.**

**VIDEO**: There is a video example that walks through error handling in APIM that you can find [HERE](https://youtu.be/56HYoSmvuyg?si=OlAjzXRFkEwnIVFS)
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,6 @@ Proper version management not only helps organize your API, it also aids in Azur

### What Versions Enable

Now that you have created a new version of the API, you have the ability to introduce breaking changes. Often times a breaking change in a backend API necessitates an API version change in APIM. Leaving a legacy implementation behind to focus on more contemporary API implementations also is a common versioning use case. Whatever the reason may be, Azure API Management provides means to abstract breaking changes in a responsible and safe manner.
Now that you have created a new version of the API, you have the ability to introduce breaking changes. Often times a breaking change in a backend API necessitates an API version change in APIM. Leaving a legacy implementation behind to focus on more contemporary API implementations also is a common versioning use case. Whatever the reason may be, Azure API Management provides means to abstract breaking changes in a responsible and safe manner.

**VIDEO**: There is a video example that walks through using Versions that you can find [HERE](https://youtu.be/W-uN95A1PJc?si=0-Z0uFQxqIaIdWVS)
Original file line number Diff line number Diff line change
Expand Up @@ -73,4 +73,6 @@ nav_order: 2

> Unlike versioning, revisioning requires no URL updates for the API consumer.

![APIM Revision Make Current](../../assets/images/apim-revision-make-current-3.png)
![APIM Revision Make Current](../../assets/images/apim-revision-make-current-3.png)

**VIDEO**: There is a video example that walks through using Revisions that you can find [HERE](https://youtu.be/2lub4l6-8FI?si=cLBnR5c-zglW_Ox1)
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,5 @@ Analytics is available on the _Analytics_ blade in APIM.
![APIM Azure Monitor Analytics](../../assets/images/apim-azure-monitor-analytics-2.png)

![APIM Azure Monitor Analytics](../../assets/images/apim-azure-monitor-analytics-3.png)

**VIDEO**: There is a video example that walks through using Azure Monitor & Application insights that you can find [HERE](https://youtu.be/-8JWforFbww?si=4f1id4NuK5BgQn8p)
Original file line number Diff line number Diff line change
Expand Up @@ -94,4 +94,6 @@ Based on internal load tests, enabling this feature caused a 40%-50% reduction i
You can manipulate the number of requests being logged by adjusting the **Sampling** setting (see the steps above). 100% means all requests are logged, while 0% reflects no logging at all. **Sampling** helps to reduce the volume of telemetry, effectively preventing from significant performance degradation, while still carrying the benefits of logging.
Sampling is an effective tool in diagnosing often general operational issues. For example, sampling can identify connectivity or integration issues as these would often occur in high quantity, not singular instances. A sampling rate of 50% is as effective in diagnosing such issues as 100% is.

Skipping logging of headers and body of requests and responses will also have positive impact on alleviating performance issues.
Skipping logging of headers and body of requests and responses will also have positive impact on alleviating performance issues.

**VIDEO**: There is a video example that walks through using Azure Monitor & Application insights that you can find [HERE](https://youtu.be/-8JWforFbww?si=4f1id4NuK5BgQn8p)