Attach files with WSAttachment and WSMedia
In GWS REST attachments are handled via the WSAttachment and WSMedia attributes.
If a parameter has a WSAttachment attribute, the REST engine treats the parameter value as a path to a file to be attached, while the data format of the file can be specified in the WSMedia attribute.
Attaching files in request and response
In this sample REST function, an image file is sent to the server in the request
and another image is returned to the client. The wildcard (image/*
) in WSMedia allows for all image types.
If the file can be any type, WSMedia
is not specified with
WSAttachment
.
The format is chosen according to that specified in
the Accept
or Content-Type
headers. You code in your
function to replace the image/*
placeholder in the Accept
or Content-Type
header with the actual value. This can also be done using
the WSContext attribute to set the header.
IMPORT os
PUBLIC FUNCTION EchoFile( input STRING ATTRIBUTES (WSAttachment,WSMedia = "image/*") )
ATTRIBUTES(WSPost)
RETURNS STRING ATTRIBUTES (WSAttachment, WSMedia = "image/*")
DEFINE ok INTEGER
LET ok = os.path.rename(input, "MyFile.png")
RETURN "/usr/local/MyOtherFile.jpg"
END FUNCTION