Native REST support

Restlet Framework provides a reusable and extensible set of Java classes and interfaces that serves as a foundation on which you can construct your own API-driven applications more efficiently.

  • Each core REST concept possesses an equivalent Java artifact in Restlet Framework, including Resource, Representation, Connector and Component. HTTP headers are also mapped to classes like MediaType.
  • Restlet Framework uses the same API for both client-side and server-side applications, reducing the learning curve and the software footprint.
  • Restlet Framework implements "URIs as UI", based on the URI Templates standard, resulting in a very flexible yet simple routing with automatic extraction of URI variables into request attributes.
  • The built-in tunneling service lets browsers issue any HTTP method (PUT, DELETE, MOVE, etc.) through a simple HTTP POST. This service is transparent for Restlet applications.
  • Implementation of the JAX-RS 1.0 API as an alternative to Restlet API.
  • Client-side support for OData (Open Data Protocol), including kit generation.

Broad Platform Support

Available in six editions each natively supporting corresponding platforms, Restlet Framework lets you build versatile applications that address a broad range of use cases.

  • The editions for Java SE and Java EE let you run your Restlet applications on any JVM or in Servlet containers.
  • The edition for GWT (Google Web Toolkit) lets you use the client-side Restlet API from within any web browser, without plugins.
  • The edition for GAE (Google App Engine) lets you deploy Restlet applications on the Google cloud computing platform.
  • The edition for Android lets you use the client-side Restlet API from Android mobile devices.
  • The edition for OSGi environments lets you develop highly dynamic Restlet Applications, running in Eclipse Equinox or Apache Felix.

A Complete Web Server

Restlet Framework is not only a framework for building APIs but also for running them. Its built-in web server provides:

  • Automated content negotiation based on client preferences.
  • Encoding and decoding service that transparently compresses or uncompresses representations exchanged.
  • Log service to write all accesses to applications in a standard fully customizable Web log file following the W3C Extended Log File Format.
  • Conditional requests automatically supported for resources.
  • Partial requests automatically supported for resources to retrieve or update a range of a representation.
  • Static file serving, like the Apache HTTP Server, with metadata association based on file extensions and URI-based redirection.
  • Remote edition of files based on PUT and DELETE methods (WebDAV mode).

Extensive Connectors Set

With its connectors, Restlet Framework covers numerous use cases. Connectors available by default include:

  • Multiple HTTP connectors, based on either Eclipse Jetty, Simple framework, JDK HttpURLConnection class or on Apache HTTP Client.
  • Client FILE connector supporting GET, PUT and DELETE methods on files and directories, supporting also directory listings.
  • Client CLAP connector to access to the Classloader resources.
  • Client RIAP connector to access to the Restlet internal resources, directly inside the JVM.
  • Client SMTP, SMTPS, POP v3 and POPS v3 connectors, based on JavaMail and custom email XML format.
  • Client SOLR connector to call embedded Apache Solr search and indexing engine.

Available Representations

Fully aligned with Web standards, Restlet Framework provides the following representations out of the box:

  • Automated marshalling and unmarshalling between POJOs and representations based on an extensible converter service. Uses Jackson for JSON, XML, YAML, CSV and more or GSON. Also works with a GWT and Java object serialization.
  • XML representations (JAXB, DOM or SAX based) with a simple XPath API based on JDK's built-in XPath engine.
  • Integration with the FreeMarker, Velocity and Thymeleaf template engines.
  • Integration with Apache FileUpload to support multi-part forms and easily handle large file uploads from browsers.
  • Transformer filter to easily apply XSLT stylesheets on XML representations. It is based on JDK's built-in XSLT engine.
  • Extensible set of core representations based on NIO and BIO classes.
  • Support for Atom standard via a dedicated extension.
  • Integration with Apache Lucene Tika to support metadata extraction from any representation.
  • Full RDF reading and writing support make Restlet Framework ready for the Semantic Web (Web 3.0).

Flexible Configuration

Restlet Framework can be entirely configured in Java via the Restlet API. Configuration standards supported include:

  • Extensive integration with popular Guice and Spring IoC frameworks.
  • Logging based on JULI (java.util.logging) with an extensibility system, including an adapter for SLF4J.

A Highly Secure and Scalable Framework

Restlet Framework supports all major security protocols and standards, including:

  • Google SDC (Secure Data Connector) to connect to backend systems and databases from public cloud applications
  • HTTP Basic and Digest authentication
  • Amazon S3 authentication
  • Microsoft Shared Key and Shared Key Lite authentication
    (client side only)
  • OAuth 2.0 authentication
  • HTTPS (HTTP over SSL)
  • POPS (POP over SSL)

Designed for scalable web applications, Restlet Framework includes the following features to ensure the highest availability and performance:

  • Fully multi-threaded design with per-request resource instances to reduce thread-safety issues when developing applications.
  • Supports non-blocking NIO modes to decouple the number of connections from the number of threads.

Restlet Framework does not support Servlet-like HTTP sessions - this concept, while attractive at first sight, is one of the major issue for Servlet scalability and is going against the stateless exchanges promoted by REST.

Download Restlet Framework Now

Build secure and scalable RESTful APIs