Skip to content

Commit e34d900

Browse files
committed
edits
1 parent d6741a3 commit e34d900

File tree

1 file changed

+32
-31
lines changed

1 file changed

+32
-31
lines changed

articles/api-management/sap-api.md

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -72,82 +72,83 @@ Choose one of the following methods to import your API to API Management:
7272
--scheme https --host <your IP address>:<your SSL port> \
7373
./epm_ref_apps_prod_man_srv.xml
7474
```
75+
7576
> [!NOTE]
76-
> * For test purposes with a single XML file, you can use a [web-based converter](https://aka.ms/ODataOpenAPI) based on the open-source tool.
77-
> * With the tool or the web-based converter, specifying the \<IP address>:\<port> of your SAP OData server is optional. Alternatively, add this information later in your generated OpenAPI specification or after importing to API Management.
77+
> * For testing with a single XML file, you can use a [web-based converter](https://aka.ms/ODataOpenAPI) that's based on an open-source tool.
78+
> * With the tool or the web-based converter, specifying the \<IP address>:\<port> of your SAP OData server is optional. Alternatively, add this information later in your generated OpenAPI specification or after you import the file to API Management.
7879
7980
1. Save the `openapi-spec.json` file locally for import to API Management.
8081

81-
## Import and publish backend API
82+
## Import and publish a backend API
8283

83-
1. From the side navigation menu, under the **APIs** section, select **APIs**.
84-
1. Under **Create a new definition**, select **OpenAPI specification**.
84+
1. In the left navigation pane, in the **APIs** section, select **APIs**.
85+
1. Under **Create a new definition**, select **OpenAPI**:
8586

86-
:::image type="content" source="./media/import-api-from-oas/oas-api.png" alt-text="OpenAPI specification":::
87+
:::image type="content" source="./media/import-api-from-oas/oas-api.png" alt-text="Screenshot that shows the OpenAPI tile.":::
8788

88-
1. Click **Select a file**, and select the `openapi-spec.json` file that you saved locally in a previous step.
89+
1. Click **Select a file**, and then select the `openapi-spec.json` file that you saved locally in a previous step.
8990

90-
1. Enter API settings. You can set the values during creation or configure them later by going to the **Settings** tab.
91-
* In **API URL suffix**, we recommend using the same URL path as in the original SAP service.
91+
1. Enter API settings. You can set these values when you create the definition or configure them later by going to the **Settings** tab.
92+
* For the **API URL suffix**, we recommend using the same URL path as that of the original SAP service.
9293

9394
* For more information about API settings, see [Import and publish your first API](import-and-publish.md#import-and-publish-a-backend-api) tutorial.
9495

9596
1. Select **Create**.
9697

9798
> [!NOTE]
98-
> The API import limitations are documented in [another article](api-management-api-import-restrictions.md).
99-
99+
> For information about API import limitations see, [API import restrictions and known issues](api-management-api-import-restrictions.md).
100100
101-
## Complete API configuration
101+
## Complete the API configuration
102102

103-
[Add](add-api-manually.md#add-and-test-an-operation) the following three operations to the API that you imported.
103+
[Add](add-api-manually.md#add-and-test-an-operation) the following three operations to the API that you imported:
104104

105105
- `GET /$metadata`
106106

107-
|Operation |Description |Further configuration for operation |
107+
|Operation |Description |Additional configuration for the operation |
108108
|---------|---------|---------|
109109
|`GET /$metadata` | Enables API Management to reach the `$metadata` endpoint, which is required for client integration with the OData server.<br/><br/>This required operation isn't included in the OpenAPI specification that you generated and imported. | Add a `200 OK` response. |
110110

111-
:::image type="content" source="media/sap-api/get-metadata-operation.png" alt-text="Get metadata operation":::
111+
:::image type="content" source="media/sap-api/get-metadata-operation.png" alt-text="Screenshot that shows the GET metadata operation.":::
112112

113113
- `HEAD /`
114114

115-
|Operation |Description |Further configuration for operation |
116-
|---------|---------|---------|
117-
|`HEAD /` | Enables the client to exchange Cross Site Request Forgery (CSRF) tokens with the SAP server, when required.<br/><br/>SAP also allows CSRF token exchange using the GET verb.<br/><br/> CSRF token exchange isn’t covered in this article. See an example API Management [policy snippet](https://github.com/Azure/api-management-policy-snippets/blob/master/examples/Get%20X-CSRF%20token%20from%20SAP%20gateway%20using%20send%20request.policy.xml) to broker token exchange. | N/A |
115+
|Operation |Description |
116+
|---------|---------|
117+
|`HEAD /` | Enables the client to exchange cross-site request forgery (CSRF) tokens with the SAP server when required.<br/><br/>SAP also allows CSRF token exchange via the GET verb.<br/><br/> CSRF token exchange isn’t covered in this article. See an [example API Management policy snippet](https://github.com/Azure/api-management-policy-snippets/blob/master/examples/Get%20X-CSRF%20token%20from%20SAP%20gateway%20using%20send%20request.policy.xml) to broker token exchange. |
118118

119-
:::image type="content" source="media/sap-api/head-root-operation.png" alt-text="Operation to fetch tokens":::
119+
:::image type="content" source="media/sap-api/head-root-operation.png" alt-text="Sceenshot that shows the operation for fetching tokens.":::
120120

121121
- `GET /`
122122

123-
Operation |Description |Further configuration for operation |
123+
Operation |Description |Additional configuration for the operation |
124124
|---------|---------|---------|
125-
|`GET /` | Enables policy configuration at service root. | Configure the following inbound [rewrite-uri](rewrite-uri-policy.md) policy to append a trailing slash to requests that are forwarded to service root:<br/><br> `<rewrite-uri template="/" copy-unmatched-params="true" />` <br/><br/>This policy removes potential ambiguity of requests with or without trailing slashes, which are treated differently by some backends.|
125+
|`GET /` | Enables policy configuration at the service root. | Configure the following inbound [rewrite-uri](rewrite-uri-policy.md) policy to append a trailing slash to requests that are forwarded to the service root:<br/><br> `<rewrite-uri template="/" copy-unmatched-params="true" />` <br/><br/>This policy removes potential ambiguity among requests with and without trailing slashes. These two types of requests are treated differently by some backends.|
126126

127-
:::image type="content" source="media/sap-api/get-root-operation.png" alt-text="Get operation for service root":::
127+
:::image type="content" source="media/sap-api/get-root-operation.png" alt-text="Screenshot that shows the GET operation for the service root.":::
128128

129-
Also, configure authentication to your backend using an appropriate method for your environment. For examples, see [API Management authentication and authorization policies](api-management-policies.md#authentication-and-authorization).
129+
You also need to configure authentication to your backend by using an appropriate method for your environment. For examples, see [API Management authentication and authorization policies](api-management-policies.md#authentication-and-authorization).
130130

131131
## Test your API
132132

133133
1. Navigate to your API Management instance.
134-
1. From the side navigation menu, under the **APIs** section, select **APIs**.
134+
1. In the left navigation pane, in the **APIs** section, select **APIs**.
135135
1. Under **All APIs**, select your imported API.
136136
1. Select the **Test** tab to access the test console.
137-
1. Select an operation, enter any required values, and select **Send**.
137+
1. Select an operation, enter any required values, and then select **Send**.
138+
139+
For example, test the `GET /$metadata` call to verify connectivity to the SAP backend.
138140

139-
For example, test the `GET /$metadata` call to verify connectivity to the SAP backend
140141
1. View the response. To troubleshoot, [trace](api-management-howto-api-inspector.md) the call.
141-
1. When testing is complete, exit the test console.
142+
1. When you're done testing, exit the test console.
142143

143144
---
144145

145146
## Production considerations
146147

147-
* See an [example end-to-end scenario](https://community.powerplatform.com/blogs/post/?postid=c6a609ab-3556-ef11-a317-6045bda95bf0) to integrate API Management with an SAP gateway.
148-
* Control access to an SAP backend using API Management policies. For example, if the API is imported as an OData API, use the [validate OData request](validate-odata-request-policy.md) policy. See also policy snippets for [SAP principal propagation for SAP ECC or S/4HANA](https://github.com/Azure/api-management-policy-snippets/blob/master/examples/Request%20OAuth2%20access%20token%20from%20SAP%20using%20AAD%20JWT%20token.xml) or [SAP SuccessFactors](https://github.com/Azure/api-management-policy-snippets/blob/master/examples/Request%20OAuth2%20access%20token%20from%20SuccessFactors%20using%20AAD%20JWT%20token.xml) and [fetching an X-CSRF token](https://github.com/Azure/api-management-policy-snippets/blob/master/examples/Get%20X-CSRF%20token%20from%20SAP%20gateway%20using%20send%20request.policy.xml).
149-
* For guidance to deploy, manage, and migrate APIs at scale, see:
150-
* [Automated API deployments with APIOps](/azure/architecture/example-scenario/devops/automated-api-deployments-apiops)
148+
* See an [example end-to-end scenario](https://community.powerplatform.com/blogs/post/?postid=c6a609ab-3556-ef11-a317-6045bda95bf0) for integrating API Management with an SAP gateway.
149+
* Control access to an SAP backend by using API Management policies. For example, if the API is imported as an OData API, use the [validate OData request](validate-odata-request-policy.md) policy. There are also policy snippets for [SAP principal propagation for SAP ECC or S/4HANA](https://github.com/Azure/api-management-policy-snippets/blob/master/examples/Request%20OAuth2%20access%20token%20from%20SAP%20using%20AAD%20JWT%20token.xml) or [SAP SuccessFactors](https://github.com/Azure/api-management-policy-snippets/blob/master/examples/Request%20OAuth2%20access%20token%20from%20SuccessFactors%20using%20AAD%20JWT%20token.xml) and [fetching an X-CSRF token](https://github.com/Azure/api-management-policy-snippets/blob/master/examples/Get%20X-CSRF%20token%20from%20SAP%20gateway%20using%20send%20request.policy.xml).
150+
* For guidance on deploying, managing, and migrating APIs at scale, see:
151+
* [Automated API deployments with APIOps](/azure/architecture/example-scenario/devops/automated-api-deployments-apiops).
151152
* [CI/CD for API Management using Azure Resource Manager templates](devops-api-development-templates.md).
152153

153154
[!INCLUDE [api-management-define-api-topics.md](../../includes/api-management-define-api-topics.md)]

0 commit comments

Comments
 (0)