This document explains how to call a Data Provider (DP) exposed as Rest web services in GeneXus.
First, let's see the basic guidelines:
How do I call the Rest service in GeneXus?
Use the HttpClient data type.
Which HTTP method should I use to call the Rest Data Provider?
The HTTP method used for calling the Data Provider is the HTTP GET verb.
Which is the URL format to execute the GET verb?
<server uri>/rest/<module>/<DP name>?param1=value1¶m2=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
With respect to consuming a Rest service (it can be generated by GeneXus or not), GeneXus provides the OpenAPI import tool.