Web services
General syntax example:
service ServiceName {
root = "/api"
resource getUser(username : String) : User {
method = "GET"
uri = "/user/" + username
mapper = userMapper
}
resource setUser(username : String, data : JSON)
: void {
method = "PUT"
uri = "/user/" + username
data = JSON.stringify(data)
}
}
function userMapper(data : JSON) : User {
return User.fromSelectJSON(data);
}
Service attributes
root
(optional)
Sets a root URI for the service, e.g. if all resources are to be found under /api
(e.g. /api/user/...
), this attribute can be used.
Example:
root = "/api"
Resource attributes
method
(optional, defaults to "GET"
)
The HTTP method to use for the service call. Values can be "GET"
, "POST"
or "PUT"
.
uri
The URI to send the request to (relative to the service's root
, if set).
Example:
uri = "/getuser.php?username=" + escape(username)
data
(optional)
The contents of the request body, represented as a string.
Example:
data = JSON.stringify(user.toJSON())
Example 2:
data = "name=" + escape(name) + "&password="
+ escape(password)
encoding
(optional, defaults to "json"
)
Possible values:
"json"
: JSON"text"
: plain text"xml"
: XML document
mapper
(optional)
A function that maps from JSON to the return type of the resource.
Example:
resource bla() : Stats {
uri = "/stats"
mapper = statsMapper
}
...
function statsMapper(statsJSON : JSON) : Stats {
// do stuff with statsJSON
return stats;
}
language/service.txt · Last modified: 2013/10/01 02:29 (external edit)