DiR - Proyecto máquina bebidas

Webservice control de bebidas

Este webservice se llama desde la máquina de bebidas y su respuesta contiene la información sobre si un abonado tiene derecho o no a tomar una bebida. La comunicación se establece siempre via SOAP.

Los parámetros generales de comunicación con el entorno DiR son:

Input

Una llamada a un servicio DiR debe contener, necesareamente 3 parámetros: base de datos, endpoint y un array con los valores de entrada para dicho endpoint. Dichos parámetros deben especificarse en llamada SOAP de la siguiente manera:

  • database: dir_franquicies
  • xml_code: dir_ws_check_drink. El xml_code corresponde al endpoint.
  • arg_data: Array con los valores de entrada. En este caso debe haber 2:
    • ID cliente (DNI sin letra)
    • Código de club (string)

Ejemplo input

<?xml version='1.0' encoding='UTF-8'?> 
<SOAP-ENV:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'>
    <SOAP-ENV:Body>
        <ns1:executeXML xmlns:ns1='urn:SOAPXMLServer' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>
            <database xsi:type='xsd:string'>dir_franquicies</database>
            <xml_code xsi:type='xsd:string'>dir_ws_check_drink</xml_code>
            <arg_data xmlns:ns2='http://xml.apache.org/xml-soap' xsi:type='ns2:ArrayList'>
                <item xsi:type='xsd:string'>$dni</item>
                <item xsi:type='xsd:string'>$club</item>
            </arg_data>
        </ns1:executeXML>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Output

  • ID cliente
  • OPEN (1: true, 0: false)

Ejemplo output

<sqlresponse country='ES' date='2021-03-02T11:57:54.525Z' date-format='dd-MM-yyyy' dbms='dir_franquicies' from='XMLSQLResultSetSerializer' host='suxapi01' lang='es' number-format='#.##0,###' rows='1' time-format='HH:mm:ss' timestamp-format='dd-MM-yyyy HH:mm:ss' type='rawsql'>
 <sqlinfo>
  <stdout><![CDATA[]]></stdout>
  <stderr><![CDATA[]]></stderr>
  <sqluser>dirdrink</sqluser>
  <sqldbms>dir_franquicies</sqldbms>
  <sqlengine>informix</sqlengine>
  <sqllang>es-</sqllang>
  <sqltype>OTHER</sqltype>
  <sqlcount>0</sqlcount>
  <sqlserial>0</sqlserial>
  <sqlmaxrows>10000</sqlmaxrows>
  <sqltables>
  </sqltables>
 </sqlinfo>
 <metadata>
  <column catalogName='' columnClassName='java.lang.String' columnDisplaySize='0' columnLabel='' columnName='(constant_1)' columnType='1' columnTypeName='char' isAutoIncrement='false' isCaseSensitive='false' isCurrency='false' isDefinitelyWritable='false' isHidden='false' isNullable='0' isNumeric='false' isPercent='false' isReadOnly='false' isRowid='false' isSigned='false' isTotal='false' isWritable='false' precision='0' scale='0' schemaName='' tableName=''/>
  <column catalogName='' columnClassName='java.lang.Integer' columnDisplaySize='0' columnLabel='' columnName='(constant_2)' columnType='4' columnTypeName='integer' isAutoIncrement='false' isCaseSensitive='false' isCurrency='false' isDefinitelyWritable='false' isHidden='false' isNullable='0' isNumeric='true' isPercent='false' isReadOnly='false' isRowid='false' isSigned='false' isTotal='false' isWritable='false' precision='0' scale='0' schemaName='' tableName=''/>
 </metadata>
 <rowset encoding='UTF-8' lang='es-'>
  <r>
   <c>53030722J</c>
   <c>1</c>
  </r>
 </rowset>
</sqlresponse>