WSAttachment

Defines file attachments in the REST message.

Syntax

WSAttachment

Usage

You use this attribute to define attachment files. Files may be attached in the message response or request.

In order to send a file as an attachment, you can have only one input parameter in the request. You specify the absolute path to the file in this parameter.

The file attachment MIME type can be set by the WSMedia attribute. If WSMedia is not specified, the engine accepts it as the OpenAPI specification for all file types, "*/*" .

For instance, if a text file is to be returned as an attachment, you handle this by adding the attribute WSAttachment to a STRING parameter and by setting the WSMedia attribute to MIME type "text/plain". You must also provide the absolute path to the file.

Example WSAttachment with WSMedia

PUBLIC FUNCTION Get() 
   ATTRIBUTES(WSGet) 
   RETURNS (STRING ATTRIBUTE(WSAttachment, WSMedia="text/plain") )
     # ... function code ...
     RETURN "/usr/tmp/myfile.txt"
END FUNCTION
The REST engine copies the file to the temporary directory defined by the TMP environment variable.
Note: The file is removed from the temporary directory at the end of the REST operation to avoid a build-up of files on your disk.
If you are attaching an image, it is defined in WSMedia with a wildcard to allow for all image types:
input STRING ATTRIBUTE (WSAttachment, WSMedia="image/*") 
If the file can be any type, WSMedia is not specified.
input STRING ATTRIBUTE (WSAttachment)
The payload format is chosen according to that specified in the Content-Type header received from the client using the Web service. You code in your function to replace the image/* placeholder in the Content-Type header with the actual value. This can be done, for instance, using the WSContext attribute, to set the header.