ScaleOut StateServer REST API


ScaleOut StateServer’s REST API allows client applications to access objects in the ScaleOut StateServer service using HTTP verbs such as GET, PUT, POST, and DELETE. This allows stored objects to be directly accessed from a web browser or from any programming language that is capable of acting as a web client.

REST (representational state transfer) is a simple approach to writing and consuming web services, where the URL of a web request operates a distinct entity/resource using common HTTP verbs. With ScaleOut’s REST API, the resources being accessed via URLs are objects in the ScaleOut StateServer in-memory data grid.

ScaleOut’s REST API offers the following features:

  • The ability to create, read, update, and delete objects using HTTP’s PUT, GET, and DELETE verbs.
  • Support for web cache validation using the standard HTTP ETag (entity tag) header, which allows a client to save bandwidth by performing a version check on an object when performing a GET.
  • Support for optimistic concurrency control when performing updates using the standard HTTP If-Match header.
  • The ability to set an object’s lifetime in the SOSS in-memory data grid using the Soss-TimeoutSec HTTP header.
  • Support for uploading files into the SOSS data grid directly from a web browser form using HTTP POST.
  • Optional storage and retrieval of an object’s Content-Type header (supporting over 1500 of the internet’s most common media types and character encodings).
  • The ability to run the REST API in either its default mode as a self-hosted service/daemon that runs its own high-performance, integrated web server (supporting TLS and HTTP digest authentication) or as a FastCGI application behind the web server of your choice.

ScaleOut’s REST API runs as a Linux daemon or a Windows service, and, for security purposes, it is disabled by default and will only accept requests from the local loopback address. See the Configuration section for details on how to enable and configure the REST service.