User Tools

Site Tools


Sidebar

Dokumentation

vortex:scripting:restservices

Vortex Integration via REST Webservices

Since version 1.2 the Vortex supports integration via REST Webservices. This chapter will explain how to configure, maintain and use this integration interface in depth.

Overview

The REST webservice is called using the URL of the Vortex instance with an appended /rest path, followed by the Database Instance and finally the name of the REST function and its arguments. Example:

http://my.vortex.net/rest/MyDBI/getCustomer/?idcustomer=12345

Accessing this URL will return the result of calling the getCustomer method in the RESTService class which is implemented in the /script folder of the DBI.

Setting up a Vortex Webservice

The REST service needs no setup.

Implementing the RESTService class

The behaviour of the REST Service is defined by the RESTService class, which is implemented as a DBI Script. This class is instanciated once for every call to the REST service. The constructor is passed the request method used to access the service: GET, POST, PUT or DELETE. The REST service then logs in to the Vortex using the given criteria in the public constants RESTUser and RESTPassword. Without theese constants set the service will fail. If the service should run as some other user depending on login calls to the service, this has to be solved in the script using the login methods of the User class.

All the methods that should be accessed using the REST Service must be implemented as public methods of the RESTService class. All the parameters supplied in the URL will be sent to the metod in one associative array. Implementing the method getCustomer in the example above would look something like

class RESTService {
   const RESTUser = "restuser";
   const RESTPassword = "restpass";
   private $reqMethod;
 
   public function __construct( $reqMethod ) {
       $this->reqMethod = $reqMethod;
   }
 
   public function getCustomer( $arguments ) {
     if( !isset( $arguments['idcustomer'] ) ) throw new Exception( "No user id supplied" );
     $f = new FilterData( "customer" );
     $f->add( "idcustomer", FilterData::EQUALS, $arguments['idcustomer'] );
     $trs = $f->getFilter()->getTableRecords();
     if( count( $trs ) == 0 ) return "";
     return $trs->toXML();
   }
}

Before calling the getCustomer method the Vortex RESTServiceHandler will try to call a request method specific method called getCustomer_GET for GET operations, getCustomer_POST for POST operations and so forth. If that method does not exist within the RESTService class getCustomer will be called.

vortex/scripting/restservices.txt · Last modified: 2019/06/28 06:55 by hubbe