Hi,
In C4 based API Manager, when we create an API using a WSDL, the API is
created with only one resource which is POST /*. We used this for invoking
the service with SOAP payloads.
But in a typical WSDL, there are several operations defined which are of
different bindings such as SOAP and HTTP. When we look at HTTP binding
based operations, those are a slightly similar to REST operations which
use HTTP verbs such as GET, DELETE, PUT etc.
For APIM 3.0.0 we are considering parsing those operations as well and
automatically create resources in the API.
A user can select one of below two options when creating a WSDL-based API.
This is because it is not good to mix up both SOAP and other REST-like
(HTTP binding) operations in the same API.
*1. Create a Pass-through SOAP API*
If a user selects this option, an API will be created with "POST /". This
is similar to an API Manager 2.1.0 SOAP API.
*2. Create an API with HTTP binding operations*
Then, the operations with HTTP binding are extracted from WSDL and those
are used to create resources in API.
For example, if we take below binding of the WSDL:
<wsdl:binding name="WeatherForecastHttpGet" type="tns:WeatherForecastHttpGet">
<http:binding verb="*GET*" />
<wsdl:operation name="GetWeatherByZipCode">
<http:operation location="*/GetWeatherByZipCode*" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetWeatherByPlaceName">
<http:operation location="*/GetWeatherByPlaceName*" />
<wsdl:input>
<http:urlEncoded />
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
These operations can be generated based on above:
GET /GetWeatherByZipCode
GET /GetWeatherByPlaceName
Appreciate your inputs on this.
Thanks!
--
Malintha Amarasinghe
*WSO2, Inc. - lean | enterprise | middleware*
http://wso2.com/
Mobile : +94 712383306
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture