You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/api-management/sap-api.md
+32-31Lines changed: 32 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -72,82 +72,83 @@ Choose one of the following methods to import your API to API Management:
72
72
--scheme https --host <your IP address>:<your SSL port> \
73
73
./epm_ref_apps_prod_man_srv.xml
74
74
```
75
+
75
76
> [!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.
78
79
79
80
1. Save the `openapi-spec.json` file locally for import to API Management.
80
81
81
-
## Import and publish backend API
82
+
## Import and publish a backend API
82
83
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**:
:::image type="content" source="./media/import-api-from-oas/oas-api.png" alt-text="Screenshot that shows the OpenAPI tile.":::
87
88
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.
89
90
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.
92
93
93
94
* For more information about API settings, see [Import and publish your first API](import-and-publish.md#import-and-publish-a-backend-api) tutorial.
94
95
95
96
1. Select **Create**.
96
97
97
98
> [!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).
100
100
101
-
## Complete API configuration
101
+
## Complete the API configuration
102
102
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:
104
104
105
105
-`GET /$metadata`
106
106
107
-
|Operation |Description |Further configuration for operation |
107
+
|Operation |Description |Additional configuration for the operation |
108
108
|---------|---------|---------|
109
109
|`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. |
:::image type="content" source="media/sap-api/get-metadata-operation.png" alt-text="Screenshot that shows the GET metadata operation.":::
112
112
113
113
-`HEAD /`
114
114
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. |
118
118
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.":::
120
120
121
121
-`GET /`
122
122
123
-
Operation |Description |Further configuration for operation |
123
+
Operation |Description |Additional configuration for the operation |
124
124
|---------|---------|---------|
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.|
126
126
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.":::
128
128
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).
130
130
131
131
## Test your API
132
132
133
133
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**.
135
135
1. Under **All APIs**, select your imported API.
136
136
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.
138
140
139
-
For example, test the `GET /$metadata` call to verify connectivity to the SAP backend
140
141
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.
142
143
143
144
---
144
145
145
146
## Production considerations
146
147
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).
151
152
*[CI/CD for API Management using Azure Resource Manager templates](devops-api-development-templates.md).
0 commit comments