Get Records

Description

Lets start with a simple page that just returns the records in Northwind Customer Table as JSON data.

Create a new A5W page that has no HTML content, and which only dumps the JSON from Customer table (assuming the project has a connection string to the sample 'Northwind' Database).

Example

<%a5
dim sql as c = "select * from Customers"
dim cn as sql::Connection
cn.PortableSQLEnabled = .t.
if cn.Open("::Name::Northwind") then
	 if cn.Execute(sql) then
        dim rs as sql::ResultSet = cn.ResultSet
        dim responseJson as c = rs.ToJSONObjectSyntax()
        responseJson =  "{ \"items\" : [" + strtran( alltrim(responseJson) , crlf(), ","+crlf() ) + "] }"
	    ? json_reformat( responseJson )
     else
        dim resp.error as c = cn.CallResult.Text
        ? json_generate(resp)
	 end if
else
    dim resp.error as c = cn.CallResult.Text
    ? json_generate(resp)
end if
%>

Testing our First Service Endpoint 

If the page called service_endpoint/a5w is published to the Root folder, and our port is 8081. When we execute the following 'curl' command against the page on a running server, we will see the JSON data being echoed.

>curl "http://127.0.0.1:8081/service_endpoint.a5w"
{
   "items": [
        {
            "CustomerID": "ALFKI",
            "CompanyName": "Alfreds Futterkiste",
            "ContactName": "manager\u001B",
            "ContactTitle": "Sales Representative",
            "Address": "Obere Str. 57",
            "City": "Berlin",
            "Region": null,
            "PostalCode": "12209",
            "Country": "Germany",
            "Phone": "030-0074321",
            "Fax": "030-0076545"
        },
        {
            "CustomerID": "ANATR",
.....
.....
.....
           "PostalCode": "21240",
            "Country": "Finland",
            "Phone": "90-224 8858",
            "Fax": "90-224 8858"
        },
        {
            "CustomerID": "WOLZA",
            "CompanyName": "Wolski  Zajazd",
            "ContactName": "Zbyszek Piestrzeniewicz",
            "ContactTitle": "Owner",
            "Address": "ul. Filtrowa 68",
            "City": "Warszawa",
            "Region": null,
            "PostalCode": "01-012",
            "Country": "Poland",
            "Phone": "(26) 642-7012",
            "Fax": "(26) 642-7012"
        }
    ]
}