IT. Expert System.

PHP

Exposing a Service Component as a Web service


Exposing a Service Component as a Web service

SCA for PHP can generate WSDL from the annotations within a service component, so that it can be easily deployed and exposed as a Web service. To provide SCA with the information it needs to generate the WSDL, it is necessary to add the annotation @binding.soap under the @service annotation and to specify the parameters and return values of the methods using the @param and @return annotations. These annotations will be read when WSDL is generated, and the order and types of the parameters determine the contents of the <schema> section of the WSDL.

SCA for PHP always generates document/literal wrapped WSDL for components that are exposing a Web service. Note that this does not stop components from consuming Web services which are not SCA components and which are documented with WSDL written in a different style.

The scalar types which can be used in the @param annotation are the four common PHP scalar types: boolean, integer, float and string. These are simply mapped to the XML schema types of the same name in the WSDL. The example below, which is a trivial implementation of the StockQuote service that the ConvertedStockQuote component calls, illustrates string and float types.

Example #1 StockQuote Service

<?php

include "SCA/SCA.php";

/**
 * Scaffold implementation for a remote StockQuote Web service.
 *
 * @service
 * @binding.soap
 *
 */
class StockQuote {

    
/**
     * Get a stock quote for a given ticker symbol.
     *
     * @param string $ticker The ticker symbol.
     * @return float The stock quote.
     */
    
function getQuote($ticker) {
        return 
80.9;
  }
}
?>

WSDL much like the following (though with a service location other than 'localhost', probably) would be generated from this service:

Example #2 Generated WSDL

<?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xsi:type="tDefinitions"  xmlns:tns2="http://StockQuote" xmlns:tns="http://schemas.xmlsoap.org/wsdl/"  xmlns:tns3="http://schemas.xmlsoap.org/wsdl/soap/"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://StockQuote"> <types>  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  targetNamespace="http://StockQuote">  <xs:element name="getQuote">   <xs:complexType>   <xs:sequence>    <xs:element name="ticker" type="xs:string"/>   </xs:sequence>   </xs:complexType>  </xs:element>  <xs:element name="getQuoteResponse">   <xs:complexType>   <xs:sequence>    <xs:element name="getQuoteReturn" type="xs:float"/>   </xs:sequence>   </xs:complexType>  </xs:element>  </xs:schema> </types> <message name="getQuoteRequest">  <part name="getQuoteRequest" element="tns2:getQuote"/> </message> <message name="getQuoteResponse">  <part name="return" element="tns2:getQuoteResponse"/> </message> <portType name="StockQuotePortType">  <operation name="getQuote">  <input message="tns2:getQuoteRequest"/>  <output message="tns2:getQuoteResponse"/>  </operation> </portType> <binding name="StockQuoteBinding" type="tns2:StockQuotePortType">  <operation name="getQuote">  <input>   <tns3:body xsi:type="tBody" use="literal"/>  </input>  <output>   <tns3:body xsi:type="tBody" use="literal"/>  </output>  <tns3:operation xsi:type="tOperation" soapAction=""/>  </operation>  <tns3:binding xsi:type="tBinding" transport="http://schemas.xmlsoap.org/soap/http" style="document"/> </binding> <service name="StockQuoteService">  <port name="StockQuotePort" binding="tns2:StockQuoteBinding">  <tns3:address xsi:type="tAddress" location="http://localhost/StockQuote/StockQuote.php"/>  </port> </service> </definitions> <!-- this line identifies this file as WSDL generated by SCA for PHP. Do not remove -->



Content

Android Reference

Java basics

Java Enterprise Edition (EE)

Java Standard Edition (SE)

SQL

HTML

PHP

CSS

Java Script

MYSQL

JQUERY

VBS

REGEX

C

C++

C#

Design patterns

RFC (standard status)

RFC (proposed standard status)

RFC (draft standard status)

RFC (informational status)

RFC (experimental status)

RFC (best current practice status)

RFC (historic status)

RFC (unknown status)

IT dictionary

License.
All information of this service is derived from the free sources and is provided solely in the form of quotations. This service provides information and interfaces solely for the familiarization (not ownership) and under the "as is" condition.
Copyright 2016 © ELTASK.COM. All rights reserved.
Site is optimized for mobile devices.
Downloads: 52 / . Delta: 0.04187 с