Description
This Web Server implementation is very basic.
Simple web service example can be found in this Wiki.
The uniqueness of this bare bones implementation is in fact that we will receive from ASTM TCP Server, located on another physical machine, one HTTP POST request at a time.
Each request will POST JSON object in this request body.
This JSON object contains set of ASTM message Frames, i.e. one complete ASTM message.
Received ASTM message, still in form of JSON object, is pushed into Iguana queue for any further processing by any channel.
Configuration
Channel Source Component is configured is configured as shown below.
Not to forget to adjust ‘path’ parameter in channel Source configuration.

Channel Destination Component is of type “To Channel”.
Iguana’s HTTP(S) Channel Settings used with this example shown on capture below.

Code
The only Translator script for this channel is in ‘main’ module.
There are no configurable parameters in this Translator script.
function main(Data)
iguana.logInfo(Data)
if (iguana.isTest()) then
readPOST(Data)
else
local Success, Err = pcall(readPOST,Data)
if not Success then
net.http.respond{body=json.serialize{data={Error=Err}}}
end
end
end
function readPOST(Data)
local req = net.http.parseRequest{data=Data}
if req.body then
queue.push{data=req.body}
net.http.respond{
entity_type=
'text/xml',
'got it',
debug_result=true}
end
end
The complete ASTM_Webserver_From_HTTPS.zip available for download.
Processing results analysis
Example of received ASTM message can be seen in below capture from channel Logs.

Careful inspection of Hex dump will reveal that all <STX>, <ETB>, and <ETX> control characters had been preserved, and frame segments terminated by <CR>.
