This document explains how to call a Data Provider (DP) exposed as Rest web services in GeneXus.
First, let's see the basic guidelines:
Use the HttpClient data type.
The HTTP method used for calling the Data Provider is the HTTP GET verb.
<server uri>/rest/<module>/<DP name>?<param1>=<value1>&<param2>=<value2>,..,<paramN>=<valueN>
Where <param1>,<param2>,..,<paramN> are the parameters of the DP. The parameters should be separated by &.
Consider the Invoice Business Component transaction, which looks as follows:
We have created a DP (called "DPCaso20"), whose Data Provider Output is the Invoice BC. Also, it's exposed as a Rest service. See the figure below:
The DP has the following rule:
To call that Rest DP, we have the following code:
&httpclient.Port = &port
&httpclient.BaseUrl = &urlbase
if &httpclient.StatusCode = 200
&result = &httpclient.ToString()
msg("Error: " + &httpclient.StatusCode.ToString())
Download the sample from Sample consuming a Rest DP
- If the service URI is "http://localhost/TestRESTFullGX.NetEnvironment/rest/Invoice", the BASE URL is: "/TestRESTFullGX.NetEnvironment/rest/"
- The parameters name must be normalized (First Character must be uppercase, and all the others must be lowercase) , in this example: Invoicedate, Customerid and Customername.
- Error handling is managed by querying the HTTP Status Code after the invocation.
Rest web services in GeneXus
Concerning consuming a Rest service (it can be generated by GeneXus or not), GeneXus provides the OpenAPI import tool.