diff --git a/apim-lab/0-prerequisites/prerequisite-0-1-technical.md b/apim-lab/0-prerequisites/prerequisite-0-1-technical.md index cd0cf6e7..5c6a3cfa 100644 --- a/apim-lab/0-prerequisites/prerequisite-0-1-technical.md +++ b/apim-lab/0-prerequisites/prerequisite-0-1-technical.md @@ -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) \ No newline at end of file diff --git a/apim-lab/1-apim-creation/apim-creation-1-1-instantiate.md b/apim-lab/1-apim-creation/apim-creation-1-1-instantiate.md index fd5f242c..c8558ec5 100644 --- a/apim-lab/1-apim-creation/apim-creation-1-1-instantiate.md +++ b/apim-lab/1-apim-creation/apim-creation-1-1-instantiate.md @@ -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) \ No newline at end of file +![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) \ No newline at end of file diff --git a/apim-lab/1-apim-creation/apim-creation-1-2-verify.md b/apim-lab/1-apim-creation/apim-creation-1-2-verify.md index d2d23bbc..bf87c53c 100644 --- a/apim-lab/1-apim-creation/apim-creation-1-2-verify.md +++ b/apim-lab/1-apim-creation/apim-creation-1-2-verify.md @@ -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://.azure-api.net/echo/resource?param1=sample` -![APIM Echo API Curl Success](../../assets/images/apim-echo-api-test-6.png) \ No newline at end of file +![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) \ No newline at end of file diff --git a/apim-lab/2-developer-portal/developer-portal-2-1-publishing.md b/apim-lab/2-developer-portal/developer-portal-2-1-publishing.md index 8b552256..664f7c8b 100644 --- a/apim-lab/2-developer-portal/developer-portal-2-1-publishing.md +++ b/apim-lab/2-developer-portal/developer-portal-2-1-publishing.md @@ -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) \ No newline at end of file diff --git a/apim-lab/2-developer-portal/developer-portal-2-2-customization.md b/apim-lab/2-developer-portal/developer-portal-2-2-customization.md index 981d6c9c..7c491ec6 100644 --- a/apim-lab/2-developer-portal/developer-portal-2-2-customization.md +++ b/apim-lab/2-developer-portal/developer-portal-2-2-customization.md @@ -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 . -A video on customization is available at . +**VIDEOS**: There are videos on customization available at and ![APIM Developer Portal Config](../../assets/images/apim-developer-portal-config-1.png) @@ -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) \ No newline at end of file +![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) \ No newline at end of file diff --git a/apim-lab/2-developer-portal/developer-portal-2-3-product-management.md b/apim-lab/2-developer-portal/developer-portal-2-3-product-management.md index a1b6a234..99562f40 100644 --- a/apim-lab/2-developer-portal/developer-portal-2-3-product-management.md +++ b/apim-lab/2-developer-portal/developer-portal-2-3-product-management.md @@ -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) \ No newline at end of file + ![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) \ No newline at end of file diff --git a/apim-lab/3-adding-apis/adding-apis-3-1-from-scratch.md b/apim-lab/3-adding-apis/adding-apis-3-1-from-scratch.md index 7633c5c1..42ed4fb4 100644 --- a/apim-lab/3-adding-apis/adding-apis-3-1-from-scratch.md +++ b/apim-lab/3-adding-apis/adding-apis-3-1-from-scratch.md @@ -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) \ No newline at end of file diff --git a/apim-lab/3-adding-apis/adding-apis-3-2-open-api.md b/apim-lab/3-adding-apis/adding-apis-3-2-open-api.md index 5708c6ea..351a26b8 100644 --- a/apim-lab/3-adding-apis/adding-apis-3-2-open-api.md +++ b/apim-lab/3-adding-apis/adding-apis-3-2-open-api.md @@ -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) \ No newline at end of file +![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) \ No newline at end of file diff --git a/apim-lab/3-adding-apis/adding-apis-3-3-calling-api.md b/apim-lab/3-adding-apis/adding-apis-3-3-calling-api.md index 1fe17171..fcd988b7 100644 --- a/apim-lab/3-adding-apis/adding-apis-3-3-calling-api.md +++ b/apim-lab/3-adding-apis/adding-apis-3-3-calling-api.md @@ -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) diff --git a/apim-lab/4-policy-expressions/index.md b/apim-lab/4-policy-expressions/index.md index 288def6f..fb480a5c 100644 --- a/apim-lab/4-policy-expressions/index.md +++ b/apim-lab/4-policy-expressions/index.md @@ -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) \ No newline at end of file + ![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) \ No newline at end of file diff --git a/apim-lab/4-policy-expressions/policy-expressions-4-3-transformation.md b/apim-lab/4-policy-expressions/policy-expressions-4-3-transformation.md index c5b0ee60..4ca1d603 100644 --- a/apim-lab/4-policy-expressions/policy-expressions-4-3-transformation.md +++ b/apim-lab/4-policy-expressions/policy-expressions-4-3-transformation.md @@ -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) \ No newline at end of file + ![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) \ No newline at end of file diff --git a/apim-lab/4-policy-expressions/policy-expressions-4-4-named-values.md b/apim-lab/4-policy-expressions/policy-expressions-4-4-named-values.md index bde299b2..46626089 100644 --- a/apim-lab/4-policy-expressions/policy-expressions-4-4-named-values.md +++ b/apim-lab/4-policy-expressions/policy-expressions-4-4-named-values.md @@ -50,4 +50,6 @@ nav_order: 4 "name": "x-request-received-time", "value": "12/30/2021 6:10:47 PM" } - ``` \ No newline at end of file + ``` + +**VIDEO**: There is a video example that walks through Named Values that you can find [HERE](https://youtu.be/qjT4Usqqj90?si=e8sTIx1iWftw__WY) \ No newline at end of file diff --git a/apim-lab/4-policy-expressions/policy-expressions-4-5-mock-apis.md b/apim-lab/4-policy-expressions/policy-expressions-4-5-mock-apis.md index 54b59a77..9cb9871f 100644 --- a/apim-lab/4-policy-expressions/policy-expressions-4-5-mock-apis.md +++ b/apim-lab/4-policy-expressions/policy-expressions-4-5-mock-apis.md @@ -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) \ No newline at end of file diff --git a/apim-lab/4-policy-expressions/policy-expressions-4-6-send-one-way-request.md b/apim-lab/4-policy-expressions/policy-expressions-4-6-send-one-way-request.md index 24b64a85..79e9c1ad 100644 --- a/apim-lab/4-policy-expressions/policy-expressions-4-6-send-one-way-request.md +++ b/apim-lab/4-policy-expressions/policy-expressions-4-6-send-one-way-request.md @@ -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) \ No newline at end of file diff --git a/apim-lab/4-policy-expressions/policy-expressions-4-7-abort-processing.md b/apim-lab/4-policy-expressions/policy-expressions-4-7-abort-processing.md index d306da1e..fb628ca0 100644 --- a/apim-lab/4-policy-expressions/policy-expressions-4-7-abort-processing.md +++ b/apim-lab/4-policy-expressions/policy-expressions-4-7-abort-processing.md @@ -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 `` logic above to let all requests flow again, then save the changes.** \ No newline at end of file + 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 `` 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) \ No newline at end of file diff --git a/apim-lab/5-versions-revisions/versions-revisions-5-1-versions.md b/apim-lab/5-versions-revisions/versions-revisions-5-1-versions.md index 916b1dd4..0f67ff1c 100644 --- a/apim-lab/5-versions-revisions/versions-revisions-5-1-versions.md +++ b/apim-lab/5-versions-revisions/versions-revisions-5-1-versions.md @@ -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. \ No newline at end of file +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) \ No newline at end of file diff --git a/apim-lab/5-versions-revisions/versions-revisions-5-2-revisions.md b/apim-lab/5-versions-revisions/versions-revisions-5-2-revisions.md index 30c5aa30..d55b5aa2 100644 --- a/apim-lab/5-versions-revisions/versions-revisions-5-2-revisions.md +++ b/apim-lab/5-versions-revisions/versions-revisions-5-2-revisions.md @@ -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) \ No newline at end of file + ![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) \ No newline at end of file diff --git a/apim-lab/6-analytics-monitoring/analytics-monitoring-6-1-azure-monitor.md b/apim-lab/6-analytics-monitoring/analytics-monitoring-6-1-azure-monitor.md index 756eb94b..e491377f 100644 --- a/apim-lab/6-analytics-monitoring/analytics-monitoring-6-1-azure-monitor.md +++ b/apim-lab/6-analytics-monitoring/analytics-monitoring-6-1-azure-monitor.md @@ -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) \ No newline at end of file diff --git a/apim-lab/6-analytics-monitoring/analytics-monitoring-6-2-application-insights.md b/apim-lab/6-analytics-monitoring/analytics-monitoring-6-2-application-insights.md index 0faf2525..230ce9c2 100644 --- a/apim-lab/6-analytics-monitoring/analytics-monitoring-6-2-application-insights.md +++ b/apim-lab/6-analytics-monitoring/analytics-monitoring-6-2-application-insights.md @@ -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. \ No newline at end of file +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) \ No newline at end of file