Skip to content

Commit b642e2a

Browse files
authored
Merge pull request #80724 from vladvino/soapArrays
Clarified array support in WSDL
2 parents fe4d1c3 + 2e58d1d commit b642e2a

File tree

1 file changed

+41
-20
lines changed

1 file changed

+41
-20
lines changed

articles/api-management/api-management-api-import-restrictions.md

Lines changed: 41 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@ ms.workload: mobile
1313
ms.tgt_pltfrm: na
1414
ms.devlang: na
1515
ms.topic: article
16-
ms.date: 09/29/2017
16+
ms.date: 06/26/2019
1717
ms.author: apipm
18-
1918
---
19+
2020
# API import restrictions and known issues
21+
2122
## About this list
23+
2224
When importing an API, you might come across some restrictions or identify issues that need to be rectified before you can successfully import. This article documents these, organized by the import format of the API.
2325

2426
## <a name="open-api"> </a>OpenAPI/Swagger
@@ -27,35 +29,54 @@ If you're receiving errors importing your OpenAPI document, make sure you've val
2729

2830
### <a name="open-api-general"> </a>General
2931

30-
* Required parameters across both path and query must have unique names. (In OpenAPI a parameter name only needs to be unique within a location, for example path, query, header. However, in API Management we allow operations to be discriminated by both path and query parameters (which OpenAPI doesn't support). That's why we require parameter names to be unique within the entire URL template.)
31-
* **$ref** pointers can't reference external files.
32-
* **x-ms-paths** and **x-servers** are the only supported extensions.
33-
* Custom extensions are ignored on import and aren't saved or preserved for export.
34-
* **Recursion** - API Management doesn't support definitions defined recursively (for example, schemas referring to themselves).
35-
* Source file URL (if available) is applied to relative server URLs.
32+
- Required parameters across both path and query must have unique names. (In OpenAPI a parameter name only needs to be unique within a location, for example path, query, header. However, in API Management we allow operations to be discriminated by both path and query parameters (which OpenAPI doesn't support). That's why we require parameter names to be unique within the entire URL template.)
33+
- **\$ref** pointers can't reference external files.
34+
- **x-ms-paths** and **x-servers** are the only supported extensions.
35+
- Custom extensions are ignored on import and aren't saved or preserved for export.
36+
- **Recursion** - API Management doesn't support definitions defined recursively (for example, schemas referring to themselves).
37+
- Source file URL (if available) is applied to relative server URLs.
3638

3739
### <a name="open-api-v2"> </a>OpenAPI version 2
3840

39-
* Only JSON format is supported.
41+
- Only JSON format is supported.
4042

4143
### <a name="open-api-v3"> </a>OpenAPI version 3
4244

43-
* If many **servers** are specified, API Management will try to select the first HTTPs URL. If there aren't any HTTPs URLs - the first HTTP URL. If there aren't any HTTP URLs - the server URL will be empty.
44-
* **Examples** isn't supported, but **example** is.
45-
* **Multipart/form-data** isn't supported.
45+
- If many **servers** are specified, API Management will try to select the first HTTPs URL. If there aren't any HTTPs URLs - the first HTTP URL. If there aren't any HTTP URLs - the server URL will be empty.
46+
- **Examples** isn't supported, but **example** is.
47+
- **Multipart/form-data** isn't supported.
4648

4749
> [!IMPORTANT]
4850
> See this [document](https://blogs.msdn.microsoft.com/apimanagement/2018/04/11/important-changes-to-openapi-import-and-export/) for important information and tips related to OpenAPI import.
4951
5052
## <a name="wsdl"> </a>WSDL
51-
WSDL files are used to generate SOAP Pass-through APIs or serve as the backend of a SOAP-to-REST API.
52-
* **SOAP bindings** -Only SOAP bindings of style ”document” and “literal” encoding are supported. There is no support for “rpc” style or SOAP-Encoding.
53-
* **WSDL:Import** - This attribute isn't supported. Customers should merge the imports into one document.
54-
* **Messages with multiple parts** - These types of messages aren't supported.
55-
* **WCF wsHttpBinding** - SOAP services created with Windows Communication Foundation should use basicHttpBinding - wsHttpBinding isn't supported.
56-
* **MTOM** - Services using MTOM <em>may</em> work. Official support isn't offered at this time.
57-
* **Recursion** - Types that are defined recursively (for example, refer to an array of themselves) are not supported by APIM.
58-
* **Multiple Namespaces** - Multiple namespaces can be used in a schema, but only the target namespace can be used to define message parts. Namespaces other than the target which are used to define other input or output elements are not preserved. Although such a WSDL document can be imported, on export all message parts will have the target namespace of the WSDL.
53+
54+
WSDL files are used to create SOAP pass-through and SOAP-to-REST APIs.
55+
56+
- **SOAP bindings** -Only SOAP bindings of style ”document” and “literal” encoding are supported. There is no support for “rpc” style or SOAP-Encoding.
57+
- **WSDL:Import** - This attribute isn't supported. Customers should merge the imports into one document.
58+
- **Messages with multiple parts** - These types of messages aren't supported.
59+
- **WCF wsHttpBinding** - SOAP services created with Windows Communication Foundation should use basicHttpBinding - wsHttpBinding isn't supported.
60+
- **MTOM** - Services using MTOM <em>may</em> work. Official support isn't offered at this time.
61+
- **Recursion** - Types that are defined recursively (for example, refer to an array of themselves) are not supported by APIM.
62+
- **Multiple Namespaces** - Multiple namespaces can be used in a schema, but only the target namespace can be used to define message parts. Namespaces other than the target which are used to define other input or output elements are not preserved. Although such a WSDL document can be imported, on export all message parts will have the target namespace of the WSDL.
63+
- **Arrays** - SOAP-to-REST transformation supports only wrapped arrays shown in the example below:
64+
65+
```xml
66+
<complexType name="arrayTypeName">
67+
<sequence>
68+
<element name="arrayElementValue" type="arrayElementType" minOccurs="0" maxOccurs="unbounded"/>
69+
</sequence>
70+
</complexType>
71+
<complexType name="typeName">
72+
<sequence>
73+
<element name="element1" type="someTypeName" minOccurs="1" maxOccurs="1"/>
74+
<element name="element2" type="someOtherTypeName" minOccurs="0" maxOccurs="1" nillable="true"/>
75+
<element name="arrayElement" type="arrayTypeName" minOccurs="1" maxOccurs="1"/>
76+
</sequence>
77+
</complexType>
78+
```
5979

6080
## <a name="wadl"> </a>WADL
81+
6182
Currently, there are no known WADL import issues.

0 commit comments

Comments
 (0)