Function attributes
Function attributes can be used to add definition information about the function, its parameters and its return values.
Purpose of function attributes
Function attributes can be used to define properties for the function itself, for the parameters accepted by the function, and for the returned values/types.
Function attributes are typically used to define RESTful Web services (high-level framework).
Usage
Function, parameter and return value attributes are specified with the
ATTRIBUTES()
clause. The ATTRIBUTES()
clause contains a
comma-separated list of attributes. An attribute can be a
name=value
pair, or single
name
for a boolean
attribute:ATTRIBUTES( WSScope='book.write', WSPUT, WSPath='{id}', ... )
The
ATTRIBUTES()
clause can be specified:- after a type of parameter in the ( ) parameter list, to define parameter attributes.
- after the closing brace of the parameter list, to define function attributes.
- after a type in the
RETURNS
clause, to define return value attributes.
Example
TYPE SimpleBookType RECORD ... END RECORD
TYPE BookType RECORD ... END RECORD
PUBLIC FUNCTION UpdateBookById(
id INTEGER ATTRIBUTES( WSParam ),
b SimpleBookType ATTRIBUTES( WSMedia='application/json' )
) ATTRIBUTES( WSScope='book.write, book.read',
WSPUT,
WSPath='/{id}',
WSDescription="Update book title and author for given id",
WSThrows="400:Invalid,404:NotAvailable" )
RETURNS (
BookType ATTRIBUTES( WSMedia='application/json,application/xml' )
)
DEFINE ret BookType
# ... code to update the book ...
RETURN ret.*
END FUNCTION