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ξ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
Date: Sun, 21 Jan 2024 06:51:17 +0300
Subject: [PATCH 08/45] Update create-graphql-apis.md
---
apim-lab/12-graphql/create-graphql-apis.md | 23 ++++++++++------------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/apim-lab/12-graphql/create-graphql-apis.md b/apim-lab/12-graphql/create-graphql-apis.md
index 204452e7..822be2b8 100644
--- a/apim-lab/12-graphql/create-graphql-apis.md
+++ b/apim-lab/12-graphql/create-graphql-apis.md
@@ -39,20 +39,17 @@ type Query {
```
-- On the left menu, open the *APIs* blade. You will see all APIs, In the "Define new API" screen select "GraphQL".
+- On the left menu, open the *APIs* blade. You will see all APIs, In the "Add API" screen select "GraphQL".
- ![APIM APIs](../../assets/images/apim-apis.png)
+ ![APIM APIs](../../assets/images/add_graphql_api.png)
-### Add API from Scratch
-
-Instead of developing an API, for this lab you will use the existing [*Star Wars* API](https://swapi.dev):
+### Add GraphQL API
1) Click on **Add API**.
-2) Click on **HTTP - Manually define an HTTP API**.
-3) Select the **Full** option in the **Create an HTTP API** dialog.
-4) Enter **Display name** `Star Wars`, **Name** `star-wars`, and, optionally, **Description**.
-5) Assign `https://swapi.dev/api` to the **Web service URL**.
-6) Keep the **URL scheme** at `HTTPS` as we strive to enforce HTTPS only.
-7) Set the **API URL suffix** to `sw`. This allows us to compartmentalize the Azure API Management URLs for distinct APIs.
-8) Assign **Starter** and **Unlimited** products.
-9) Press **Create**.
+2) Enter **Display name** `People`, **Name** `people`.
+3) For the GraphQL type, select **Synthetic GraphQL**.
+4) For the schema file, browse and upload the GraphQL schema (People.gql).
+5) Set the **API URL suffix** to `swgql`. This allows us to compartmentalize the Azure API Management URLs for distinct APIs.
+6) Press **Create**.
+
+ ![APIM APIs](../../assets/images/create_graphql_from_schema.png)
From f15c181236481c1b092c341825fd0b9c22b12e1a Mon Sep 17 00:00:00 2001
From: francisnazareth <73844173+francisnazareth@users.noreply.github.com>
Date: Sun, 21 Jan 2024 06:52:09 +0300
Subject: [PATCH 09/45] Add files via upload
---
assets/images/create_graphql_from_schema.png | Bin 0 -> 73530 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 assets/images/create_graphql_from_schema.png
diff --git a/assets/images/create_graphql_from_schema.png b/assets/images/create_graphql_from_schema.png
new file mode 100644
index 0000000000000000000000000000000000000000..659ebb81fd878cccc7f0571bcb54d917b6a1601e
GIT binary patch
literal 73530
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