Ócáid
Tóg Feidhmchláir agus Gníomhairí AI
Mar 17, 9 PM - Mar 21, 10 AM
Bí ar an tsraith meetup chun réitigh AI inscálaithe a thógáil bunaithe ar chásanna úsáide fíor-dhomhanda le forbróirí agus saineolaithe eile.
Cláraigh anoisNí thacaítear leis an mbrabhsálaí seo a thuilleadh.
Uasghrádú go Microsoft Edge chun leas a bhaint as na gnéithe is déanaí, nuashonruithe slándála, agus tacaíocht theicniúil.
APPLIES TO: All API Management tiers
When importing an API, you might encounter some restrictions or need to identify and rectify issues before you can successfully import. In this article, you'll learn:
During OpenAPI import, API Management:
If you prefer that required query parameters in the specification are translated to query parameters in API Management, disable the Include query parameters in operation templates setting when creating the API in the portal. You can also accomplish this by using the APIs - Create or Update REST API to set the API's translateRequiredQueryParameters
property to query
.
For GET, HEAD, and OPTIONS operations, API Management discards a request body parameter if defined in the OpenAPI specification.
If you receive errors while importing your OpenAPI document, make sure you've validated it beforehand by either:
Requirement | Description |
---|---|
Unique names for required path and query parameters | In OpenAPI:
|
Defined URL parameter | Must be part of the URL template. |
Available source file URL | Applied to relative server URLs. |
\$ref pointers |
Can't reference external files. |
Supported versions
API Management only supports:
Size limitations
Size limit | Description |
---|---|
Up to 4 MB | When an OpenAPI specification is imported inline to API Management. |
Azure Resource Manager API request size | When an OpenAPI document is provided via a URL to a location accessible from your API Management service. See Azure subscription limits. |
The only supported extensions are:
Extension | Description |
---|---|
x-ms-paths |
|
x-servers |
A backport of the OpenAPI 3 servers object for OpenAPI 2. |
Extension | Description |
---|---|
Recursion |
API Management doesn't support definitions defined recursively. For example, schemas referring to themselves. |
Server object |
Not supported on the API operation level. |
Produces keyword |
Describes MIME types returned by an API. Not supported. |
Inline schema definitions for API operations aren't supported. Schema definitions:
Security definitions are ignored.
When importing query parameters, only the default array serialization method (style: form
, explode: true
) is supported. For more details on query parameters in OpenAPI specifications, refer to the serialization specification.
Parameters defined in cookies aren't supported. You can still use policy to decode and validate the contents of cookies.
OpenAPI version 2 support is limited to JSON format only.
"Form" type parameters aren't supported. You can still use policy to decode and validate application/x-www-form-urlencoded
and application/form-data
payloads.
API Management supports the following specification versions:
servers
are specified, API Management will use the first HTTPS URL it finds.example
The following fields are included in either OpenAPI version 3.0.x or OpenAPI version 3.1.x, but aren't supported:
Object | Field |
---|---|
OpenAPI | externalDocs |
Info | summary |
Components |
|
PathItem |
|
Operation |
|
Parameter |
|
Server templating |
|
API definitions exported from an API Management service are:
For configuration management of API definitions across different services/environments, refer to documentation regarding using API Management service with Git.
For each operation found in the OpenAPI document, a new operation is created with:
Azure resource name set to operationId
.
operationId
value is normalized.operationId
isn't specified (not present, null
, or empty), Azure resource name value is generated by combining HTTP method and path template.
get-foo
.Display name set to summary
.
summary
value:
summary
isn't specified (not present, null
, or empty), display name value will set to operationId
.Normalization rules for operationId
GET-/foo/{bar}?buzz={quix}
is transformed into get-foo-bar-buzz-quix-
.get-foo-bar-buzz-quix-
becomes get-foo-bar-buzz-quix
-1, -2, ..., -999
.During import, the existing API operation:
operationId
value to the existing operation's Azure resource name.
get-foo
.All existing unmatched operations are deleted.
To make import more predictable, follow these guidelines:
operationId
property for every operation.operationId
after initial import.operationId
and HTTP method or path template at the same time.Normalization rules for operationId
GET-/foo/{bar}?buzz={quix}
is transformed into get-foo-bar-buzz-quix-
.get-foo-bar-buzz-quix-
becomes get-foo-bar-buzz-quix
-1, -2, ..., -999
.For each operation, it's:
operationId
.summary
.Note that normalization of the operationId
is done on import, not on export.
You can create SOAP pass-through and SOAP-to-REST APIs with WSDL files.
The wsdl:import
, xsd:import
, and xsd:include
directives aren't supported. Instead, merge the dependencies into one document.
For an open-source tool to resolve and merge wsdl:import
, xsd:import
, and xsd:include
dependencies in a WSDL file, see this GitHub repo.
WSDL files incorporating WS-* specifications aren't supported.
This message type is not supported.
basicHttpBinding
.wsHttpBinding
isn't supported.MTOM
may work.While multiple namespaces can be used in a schema, only the target namespace can be used to define message parts. These namespaces are used to define other input or output elements.
Namespaces other than the target aren't preserved on export. While you can import a WSDL document defining message parts with other namespaces, all message parts will have the WSDL target namespace on export.
WSDL files can define multiple services and endpoints (ports) by one or more wsdl:service
and wsdl:port
elements. However, the API Management gateway is able to import and proxy requests to only a single service and endpoint. If multiple services or endpoints are defined in the WSDL file, identify the target service name and endpoint when importing the API by using the wsdlSelector property.
Nod
If you want to load-balance requests across multiple services and endpoints, consider configuring a load-balanced backend pool.
SOAP-to-REST transformation supports only wrapped arrays shown in the example below:
<complexType name="arrayTypeName">
<sequence>
<element name="arrayElementValue" type="arrayElementType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="typeName">
<sequence>
<element name="element1" type="someTypeName" minOccurs="1" maxOccurs="1"/>
<element name="element2" type="someOtherTypeName" minOccurs="0" maxOccurs="1" nillable="true"/>
<element name="arrayElement" type="arrayTypeName" minOccurs="1" maxOccurs="1"/>
</sequence>
</complexType>
Currently, there are no known WADL import issues.
Ócáid
Tóg Feidhmchláir agus Gníomhairí AI
Mar 17, 9 PM - Mar 21, 10 AM
Bí ar an tsraith meetup chun réitigh AI inscálaithe a thógáil bunaithe ar chásanna úsáide fíor-dhomhanda le forbróirí agus saineolaithe eile.
Cláraigh anoisOiliúint
Modúl
Integrate OpenAPI-enabled Web APIs with Azure API Management through Visual Studio - Training
Learn how to add an OpenAPI-enabled Web API application to Azure API Management through Visual Studio.
Doiciméadúchán
Import an OpenAPI specification to Azure API Management
Learn how to import an OpenAPI specification to an API Management instance using the Azure portal, Azure CLI, or Azure PowerShell. Then, test the API in the Azure portal.
Import SOAP API to Azure API Management
Learn how to import a SOAP API to Azure API Management as a WSDL specification using the Azure portal, Azure CLI, or Azure PowerShell. Then, test the API in the Azure portal.
Add an API manually using the Azure portal
This tutorial shows you how to use API Management to add an API manually.