Skip to content

Commit e308fc1

Browse files
committed
microsoftDocs/azure-docs#64622
1 parent acbbc85 commit e308fc1

File tree

1 file changed

+35
-25
lines changed

1 file changed

+35
-25
lines changed

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

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -43,40 +43,45 @@ If you receive errors while importing your OpenAPI document, make sure you've va
4343
### <a name="open-api-general"> </a>General
4444

4545
#### URL template requirements
46-
- Required parameters across both path and query must have unique names.
47-
- In OpenAPI, a parameter name only needs to be unique within a location, for example path, query, header.
48-
- In API Management, we allow operations to be discriminated by both path and query parameters.
49-
- OpenAPI doesn't support this, so we require parameter names to be unique within the entire URL template.
50-
- A defined URL parameter needs to be part of the URL template.
51-
- Available source file URL is applied to relative server URLs.
52-
- `\$ref` pointers can't reference external files.
46+
47+
| Requirement | Description |
48+
| ----------- | ----------- |
49+
| **Unique names for required path and query parameters** | In OpenAPI: <ul><li>A parameter name only needs to be unique within a location, for example path, query, header.</li></ul>In API Management:<ul><li>We allow operations to be discriminated by both path and query parameters.</li><li>OpenAPI doesn't support this, so we require parameter names to be unique within the entire URL template.</li></ul> |
50+
| **Defined URL parameter** | Must be part of the URL template. |
51+
| **Available source file URL** | Applied to relative server URLs. |
52+
| **`\$ref` pointers** | Can't reference external files. |
53+
5354

5455
#### OpenAPI specifications
55-
When imported inline to API Management, an OpenAPI specification can be up to 4 MB in size. When an OpenAPI document is provided via a URL to a location accessible from your API Management service, the size limit doesn't apply.
56+
57+
| Size limit | Description |
58+
| ---------- | ----------- |
59+
| **Up to 4 MB** | When an OpenAPI specification is imported inline to API Management. |
60+
| **Size limit doesn't apply** | When an OpenAPI document is provided via a URL to a location accessible from your API Management service. |
5661

5762
#### Supported extensions
5863
The only supported extensions are:
59-
- `x-ms-paths`
60-
- Allows you to define paths that are differentiated by query parameters in the URL.
61-
- Covered in the [autorest docs](https://github.com/Azure/autorest/tree/main/docs/extensions#x-ms-paths).
62-
- `x-servers`
63-
- A backport of the [OpenAPI 3 `servers` object](https://swagger.io/docs/specification/api-host-and-base-path/) for OpenAPI 2.
64+
65+
| Extension | Description |
66+
| ----------- | ----------- |
67+
| **`x-ms-paths`** | <ul><li>Allows you to define paths that are differentiated by query parameters in the URL.</li><li>Covered in the [autorest docs](https://github.com/Azure/autorest/tree/main/docs/extensions#x-ms-paths).</li></ul> |
68+
| **`x-servers`** | A backport of the [OpenAPI 3 `servers` object](https://swagger.io/docs/specification/api-host-and-base-path/) for OpenAPI 2. |
6469

6570
#### Unsupported extensions
66-
- `Recursion`:
67-
- API Management doesn't support definitions defined recursively.
68-
- For example, schemas referring to themselves.
69-
- `Server` object isn't supported on the API operation level.
70-
- `Produces` keyword (which describes MIME types returned by an API) isn't supported.
71+
| Extension | Description |
72+
| ----------- | ----------- |
73+
| **`Recursion`** | API Management doesn't support definitions defined recursively.<br />For example, schemas referring to themselves. |
74+
| **`Server` object** | Not supported on the API operation level. |
75+
| **`Produces` keyword** | Describes MIME types returned by an API. <br />Not supported. |
7176

7277
#### Custom extensions
7378
- Are ignored on import.
7479
- Aren't saved or preserved for export.
7580

7681
#### Unsupported definitions
7782
Inline schema definitions for API operations aren't supported. Schema definitions:
78-
- Are defined in the API scope.
79-
- Can be referenced in API operations request or response scopes.
83+
- Are defined in the API scope.
84+
- Can be referenced in API operations request or response scopes.
8085

8186
#### Ignored definitions
8287
Security definitions are ignored.
@@ -92,13 +97,18 @@ OpenAPI version 2 support is limited to JSON format only.
9297
- If there aren't any HTTPS URLs, the server URL will be empty.
9398

9499
#### Supported
95-
- While `Examples` isn't supported, `example` is.
100+
- `example`
96101

97102
#### Unsupported
98-
The following fields are included in OpenAPI version 3.x, but are not supported:
99-
- `explode`
100-
- `style`
101-
- `allowReserved`
103+
The following fields are included in [OpenAPI version 3.x](https://swagger.io/specification/), but are not supported:
104+
105+
| Object | Field |
106+
| ----------- | ----------- |
107+
| **OpenAPI** | `externalDocs` |
108+
| **Components** | <ul><li>`responses`</li><li>`parameters`</li><li>`examples`</li><li>`requestBodies`</li><li>`headers`</li><li>`securitySchemes`</li><li>`links`</li><li>`callbacks`</li></ul> |
109+
| **PathItem** | <ul><li>`trace`</li><li>`servers`</li></ul> |
110+
| **Operation** | <ul><li>`externalDocs`</li><li>`callbacks`</li><li>`security`</li><li>`servers`</li></ul> |
111+
| **Parameter** | <ul><li>`allowEmptyValue`</li><li>`style`</li><li>`explode`</li><li>`allowReserved`</li></ul> |
102112

103113
## OpenAPI import, update, and export mechanisms
104114

0 commit comments

Comments
 (0)