Example: set security with WSScope
You can set security using the WSScope attribute either at the function level or at the service level.
Example 1: Setting security with WSScope at function level
In this sample REST function there is an example of a function that requires authentication
        to access it. To execute this REST operation requires the request contains an access token
        with a scope that matches what is in WSScope.
The WSScope attribute is set in the ATTRIBUTES clause of
        the function. In this example the scope is set to "profile" or "profile.me". 
Access token errors are automatically handled by the GWS engine. You do not need to do anything in your code. If the client request does not have the correct access token, the service will return HTTP 403.
WSThrows is set to handle errors. In the TRY/CATCH block, the sqlca record is checked after
        the execution of the SQL query. The SQLERRMESSAGE is set to the
          message field of the userError variable, and a call to
            SetRestError() returns the message defined in WSThrows
        for the error. 
IMPORT com
TYPE profileType RECORD
     id INTEGER,
     name VARCHAR(100),
     email VARCHAR(255)
     # ...
   END RECORD
PUBLIC FUNCTION FetchMyUserProfile( id INTEGER ATTRIBUTES(WSQuery) )
  ATTRIBUTES(
    WSGet,
    WSPath = "/users/profile",
    WSDescription = "Returns a user profile, requires authentication",
    WSThrows = "404:user not found",
    WSScope = "profile, profile.me")
  RETURNS profileType ATTRIBUTES(WSName = "data",
                                 WSMedia = "application/json,application/xml")
    DEFINE p profileType
    TRY
      SELECT * INTO p.* FROM users
             WHERE @id = id
      IF sqlca.sqlcode = NOTFOUND THEN
        CALL com.WebServiceEngine.SetRestError(404,NULL)
      END IF
    CATCH
       CALL com.WebServiceEngine.SetRestError(505,NULL)
    END TRY
    RETURN p
END FUNCTION
    Example 2: Setting security at Web service level via WSScope
This example sets the scope in the service information record of the module. The attributes set
are WSInfo and WSScope. All REST functions in the module require
the scope "users.fourjs" in order to execute.
PUBLIC DEFINE serviceInfo 
  RECORD ATTRIBUTES(WSInfo,
                    WSScope="users.fourjs")
    title STRING,
    version STRING,
    contact STRING
  END RECORD