Quantcast
Channel: Active questions tagged rest - Stack Overflow
Viewing all articles
Browse latest Browse all 4045

How to call PostgreSQL stored procedures from a WSO2 REST dataservice

$
0
0

I have a REST data service in WSO2 like this:

<data name="RESTDataService" serviceNamespace="http://ws.wso2.org/dataservice/samples/json_sample" transports="http https"><description>Exponiendo el servicio de datos como un servicio REST.</description><query id="obtenerEdad" useConfig="default"><sql>SELECT * FROM verificarEdad(:id_cliente)</sql><param name="id_cliente" paramType="SCALAR" sqlType="INTEGER" /><result outputType="json">    {"cliente": {"verificaredad": "$verificaredad"      }    }</result></query><query id="obtenerEdadCuenta" useConfig="default"><sql>SELECT * FROM verificaredadcuenta(:id_cuenta)</sql><param name="id_cuenta" paramType="SCALAR" sqlType="INTEGER" /><result outputType="json">    {"cliente": {"verificaredadcuenta": "$verificaredadcuenta"      }    }</result></query><query id="obtenerEdadSaldo" useConfig="default"><sql>SELECT * FROM verificaredadsaldo(:id_cuenta)</sql><param name="id_cuenta" paramType="SCALAR" sqlType="INTEGER" /><result outputType="json">    {"cliente": {"verificaredadsaldo": "$verificaredadsaldo"      }    }</result></query><query id="obtenerDatosClientes" useConfig="default"><sql>SELECT * FROM ObtenerDatosCliente(:id_cliente)</sql><param name="id_cliente" paramType="SCALAR" sqlType="INTEGER" /><result outputType="json">    {"cliente": {"nombre_completo": "$nombre_completo","domicilio": "$domicilio","numero_cliente": "$numero_cliente"      }    }</result></query><query id="ObtenerDatosCuenta" useConfig="default"><sql>SELECT * FROM obtenerDatosCuenta(:p_cuenta_id)</sql><param name="p_cuenta_id" paramType="SCALAR" sqlType="INTEGER" /><result outputType="json">      {"cuentas": {"cuenta": {"numero_cuenta": "$numero_cuenta","nombre_banco": "$nombre_banco","sucursal": "$sucursal","vigencia": "$vigencia"          }        }      }</result></query><query id="ObtenerDatosSaldo" useConfig="default"><sql>SELECT * FROM obtenerDatosSaldo(:p_saldo_id)</sql><param name="p_saldo_id" paramType="SCALAR" sqlType="INTEGER" /><result outputType="json">      {"saldos": {"saldo": [            {"fecha": "$fecha","saldo": "$saldo","tipo_movimiento": "$tipo_movimiento"            }          ]        }      }</result></query><query id="InsertarCliente" useConfig="default"><sql>    CALL AgregarCliente(:nombre, :domicilio, :id_cliente, :fecha);</sql><param name="nombre" paramType="SCALAR" sqlType="STRING" /><param name="domicilio" paramType="SCALAR" sqlType="STRING" /><param name="id_cliente" paramType="SCALAR" sqlType="INTEGER" /><param name="fecha" paramType="SCALAR" sqlType="DATE" type="IN" optional="false" /></query><query id="InsertarCuenta" useConfig="default"><sql>      CALL InsertarCuenta(:numero_cuenta, :vigencia, :cliente_id, :banco_id);</sql><param name="numero_cuenta" paramType="SCALAR" sqlType="STRING" /><param name="vigencia" paramType="SCALAR" sqlType="DATE" /><param name="cliente_id" paramType="SCALAR" sqlType="INTEGER" /><param name="banco_id" paramType="SCALAR" sqlType="INTEGER" /></query><query id="InsertarSaldo" useConfig="default"><sql>      CALL InsertarSaldo(:cuenta_id, :saldo);</sql><param name="cuenta_id" paramType="SCALAR" sqlType="INTEGER" /><param name="saldo" paramType="SCALAR" sqlType="NUMERIC" /></query><query id="InsertarMovimiento" useConfig="default"><sql>      CALL InsertarMovimiento(?, ?, CURRENT_DATE);</sql><param name="cuenta_id" ordinal="1" sqlType="INTEGER" /><param name="tipo_movimiento" ordinal="2" sqlType="STRING" /></query><resource method="POST" path="verificaredad"><call-query href="obtenerEdad"><with-param name="id_cliente" query-param="id_cliente" /></call-query></resource><resource method="POST" path="verificaredadcuenta"><call-query href="obtenerEdadCuenta"><with-param name="id_cuenta" query-param="id_cuenta" /></call-query></resource><resource method="POST" path="verificaredadsaldo"><call-query href="obtenerEdadSaldo"><with-param name="id_cuenta" query-param="id_cuenta" /></call-query></resource><resource method="POST" path="obtenerclientes"><call-query href="obtenerDatosClientes"><with-param name="id_cliente" query-param="id_cliente" /></call-query></resource><resource method="POST" path="obtenercuentas"><call-query href="ObtenerDatosCuenta"><with-param name="p_cuenta_id" query-param="id_cuenta" /></call-query></resource><resource method="POST" path="saldo"><call-query href="ObtenerDatosSaldo"><with-param name="p_saldo_id" query-param="saldo_id" /></call-query></resource><resource method="POST" path="insertar-cliente"><description /><call-query href="InsertarCliente"><with-param name="nombre" query-param="nombre" /><with-param name="domicilio" query-param="domicilio" /><with-param name="id_cliente" query-param="id_cliente" /><with-param name="fecha" query-param="fecha" /></call-query></resource><resource method="POST" path="insertar-cuenta"><description /><call-query href="InsertarCuenta"><with-param name="numero_cuenta" query-param="numero_cuenta" /><with-param name="vigencia" query-param="vigencia" /><with-param name="cliente_id" query-param="cliente_id" /><with-param name="banco_id" query-param="banco_id" /></call-query></resource><resource method="POST" path="insertar-saldo"><description /><call-query href="InsertarSaldo"><with-param name="cuenta_id" query-param="cuenta_id" /><with-param name="saldo" query-param="saldo" /></call-query></resource><resource method="POST" path="insertar-movimiento"><description /><call-query href="InsertarMovimiento"><with-param name="cuenta_id" query-param="cuenta_id" /><with-param name="tipo_movimiento" query-param="tipo_movimiento" /></call-query></resource><config id="default"><property name="carbon_datasource_name">conn</property></config></data>

My first 6 SQL queries are functions:

enter image description here

and the next 4 SQL queries are stored procedures:

enter image description here

I really must have 10 stored procedures and not 6 functions with 4 stored procedures; the reason for the which I used a function for do my first 6 SQL queries is for I can't do a

SELECT * FROM

with a stored procedure with my WSO2 REST dataservice, I only can do the last 4 SQL queries with stored procedures because I only can do an data insert form a stored procedure (with the CALL sentence), but with my first 6 statements, I can't get the rows of my tables through stored procedures.

In conclusion with my REST only can get row data use an function, I only can use stored procedures for inserting data.

What is the correct way for call stored procedures from a WSO2 REST data service?


Viewing all articles
Browse latest Browse all 4045

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>