Server-side Functions

In OrientDB, you can replace the use of Servlets with server-side functions. For more information on how to call server-side functions, see Functions using the HTTP REST API

When the HTTP REST protocol calls server-side functions, OrientDB embeds a few additional variables:

  • Request Object The HTTP request, implemented by the OHttpRequestWrapper class.
  • Response Object The HTTP request response, implemented by the OHttpResponseWrapper class.
  • Util Object The utility class with helper functions, to use inside the functions, implemented by the OFunctionUtilWrapper class.

Request Object

OrientDB references this object as request. For instance,

var params = request.getParameters();
Method signature Description Return type
getContent() Returns the request content. String
getUser() Gets the request user name. String
getContentType() Returns the request content type. String
getHttpVersion() Return the request HTTP version. String
getHttpMethod() Return the request HTTP method called. String
getIfMatch() Return the request IF-MATCH header. String
isMultipart() Returns if the request is multi-part. boolean
getArguments() Returns the request arguments passed in REST form. Example: /2012/10/26. String[]
getArgument(<position>) Returns the request argument by position, or null if not found. String
getParameters() Returns the request parameters. String
getParameter(<name>) Returns the request parameter by name or null if not found. String
hasParameters(<name>, ...) Returns the number of parameters found between those passed. Integer
getSessionId() Returns the session-id. String
getURL() Returns the request URL. String

Response Object

OrientDB references this object as response. For instance,

var db = orient.getDatabase();
var roles = db.query("select from ORole where name = ?", roleName);
if( roles == null || roles.length == 0 ){
  response.send(404, "Role name not found", "text/plain", "Error: role name not found" );
} else {

  db.begin();
  try{
    var result = db.save({ "@class" : "OUser", name : "Luca", password : "Luc4", "roles" : roles});
    db.commit();
    return result;
  }catch ( err ){
    db.rollback();
    response.send(500, "Error on creating new user", "text/plain", err.toString() );
  }
}
Method signature Description Return type
getHeader() Returns the response additional headers. String
setHeader(String header) Sets the response additional headers to send back. To specify multiple headers use the line breaks. Request object
getContentType() Returns the response content type. If null will be automatically detected. String
setContentType(String contentType) Sets the response content type. If null will be automatically detected. Request object
getCharacterSet() Returns the response character set used. String
setCharacterSet(String characterSet) Sets the response character set. Request object
getHttpVersion() Returns the HTTP version. String
writeStatus(int httpCode, String reason) Sets the response status as HTTP code and reason. Request object
writeHeaders(String contentType, boolean keepAlive) Sets the response headers specifying when using the keep-alive or not. Request object
writeLine(String content) Writes a line in the response. A line feed will be appended at the end of the content. Request object
writeContent(String content) Writes content directly to the response. Request object
writeRecords(List<OIdentifiable> records) Writes records as response. The records are serialized in JSON format. Request object
writeRecords(List<OIdentifiable> records, String fetchPlan) Writes records as response specifying a fetch-plan to serialize nested records. The records are serialized in JSON format. Request object
writeRecord(ORecord record) Writes a record as response. The record is serialized in JSON format. Request object
writeRecord(ORecord record, String fetchPlan) Writes a record as response. The record is serialized in JSON format. Request object
send(int code, String reason, String contentType, Object content) Sends the complete HTTP response in one call. Request object
send(int code, String reason, String contentType, Object content, String headers) Sends the complete HTTP response in one call specifying additional headers. Keep-alive is set. Request object
send(int code, String reason, String contentType, Object content, String headers, boolean keepAlive) Sends the complete HTTP response in one call specifying additional headers. Request object
sendStream(int code, String reason, String contentType, InputStream content, long size) Sends the complete HTTP response in one call specifying a stream as content. Request object
flush() Flushes the content to the TCP/IP socket. Request object

Util Object

OrientDB references this object as util. For instance,

if( util.exists(year) ){
  print("\nYes, the year was passed!");
}
Method signature Description Return type
exists(<variable>) Returns trues if any of the passed variables are defined. In JS, for example, a variable is defined if it's not null and not equal to undefined. Boolean

results matching ""

    No results matching ""