Hi Maninda,

If there are any POST operations defined as HTTP binding, we will make them
normal HTTP POST operations. Sorry, may be my example is a bit confusing.

If we take below set of operations, we will have to include HTTP POST
operations as well.

<wsdl:binding name="DelayedStockQuoteHttpGet" type="
tns:DelayedStockQuoteHttpGet">
<http:binding verb="*GET*"/>
<wsdl:operation name="GetQuickQuote">
<http:operation location="*/GetQuickQuote*"/>
<wsdl:input>
<http:urlEncoded/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetQuoteDataSet">
<http:operation location="*/GetQuoteDataSet*"/>
<wsdl:input>
<http:urlEncoded/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="DelayedStockQuoteHttpPost" type="
tns:DelayedStockQuoteHttpPost">
<http:binding verb="*POST*"/>
<wsdl:operation name="GetQuickQuote">
<http:operation location="*/GetQuickQuote*"/>
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded"/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetQuoteDataSet">
<http:operation location="*/GetQuoteDataSet*"/>
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded"/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>

We will be extracting:

   - GET /GetQuickQuote
   - GET /GetQuoteDataSet
   - POST /GetQuickQuote
   - POST /GetQuoteDataSet



I meant to say we would use "POST /" resource only for SOAP binding
operations. For example:


<wsdl:binding name="DelayedStockQuoteSoap" type="tns:DelayedStockQuoteSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="GetQuote">
<soap:operation soapAction="http://ws.cdyne.com/GetQuote"; style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetQuickQuote">
<soap:operation soapAction="http://ws.cdyne.com/GetQuickQuote"; style="
document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetQuoteDataSet">
<soap:operation soapAction="http://ws.cdyne.com/GetQuoteDataSet"; style="
document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>


Thanks!
Malintha


On Mon, Jul 17, 2017 at 4:38 PM, Maninda Edirisooriya <[email protected]>
wrote:

> Hi Malintha,
>
> Why we are not making POST operations too as HTTP POST operations? As POST
> is also a HTTP verb why make it different as SOAP? Are there any more
> differences between SOAP binding that are not supported in HTTP REST like
> operations? If that is the case is it correct to move other operations
> (like GET etc.) to HTTP operations?
> Thanks.
>
>
> *Maninda Edirisooriya*
> Senior Software Engineer
>
> *WSO2, Inc.*lean.enterprise.middleware.
>
> *Blog* : http://maninda.blogspot.com/
> *E-mail* : [email protected]
> *Skype* : @manindae
> *Twitter* : @maninda
>
> On Thu, Jul 13, 2017 at 7:21 PM, Malintha Amarasinghe <[email protected]>
> wrote:
>
>> 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 <071%20238%203306>
>>
>
>


-- 
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

Reply via email to