-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.txt
84 lines (73 loc) · 6.69 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
=================================================================
Restlet Framework, the leading RESTful web API framework for Java
=================================================================
http://restlet.org
-----------------------------------------------------------------
Native REST support
- Core REST concepts have equivalent Java artifact (Resource, Representation, Connector or Component for example).
- Suitable for both client-side and server-side web applications. The innovation is that that it uses the same API, reducing the learning curve and the software footprint.
- Concept of "URIs as UI" supported based on the URI Templates standard. This results in a very flexible yet simple routing with automatic extraction of URI variables into request attributes.
- Tunneling service lets browsers issue any HTTP method (PUT, DELETE, MOVE, etc.) through a simple HTTP POST. This service is transparent for Restlet applications.
- Ready for the Semantic Web (Web 3.0), with full RDF reading and writing support.
- Client-side support for OData (Open Data Protocol) including kit generation.
Available editions
- Restlet edition for Java SE/EE, letting you run your Restlet applications on regular JVMs or in regular Servlet containers.
- Restlet edition for GWT, letting you use the Restlet API from within any Web browser, without plugins.
- Restlet edition for GAE, letting you deploy Restlet applications on Google AppEngine cloud computing platform.
- Restlet edition for Android, letting you deploy Restlet applications on Google Android mobile devices.
- Restlet edition for OSGi environments, letting you develop highly dynamic Restlet Applications, running in Equinox, Felix or other OSGi containers.
Complete Web Server
- Static file serving similar to Apache HTTP Server, with metadata association based on file extensions.
- Automated content negotiation based on client preferences.
- Conditional requests automatically supported for resources.
- Partial requests automatically supported for resources to retrieve or update a range of a representation.
- Remote edition of files based on PUT and DELETE methods (aka mini-WebDAV mode).
- Encoder and decoder service transparently compress or uncompress representations exchanged.
- Log service writes all accesses to your applications in a standard Web log file. The log format follows the W3C Extended Log File Format and is fully customizable.
- Powerful URI based redirection support similar to Apache Rewrite module.
- Extensive and flexible security with support for authentication, authorization, role management, SSL certificates, JAAS integration, OAuth 2.0 and more.
Available Connectors
- Multiple server HTTP connectors available, based on either Mortbay's Jetty or the Simple framework
- AJP server connector available to let you plug behind an Apache HTTP server or Microsoft IIS. It is based on Jetty's connector.
- Multiple client HTTP connectors available, based on either the JDK's HttpURLConnection class or on Apache HTTP Client.
- Built-in internal HTTP, SIP client and server connectors for development mode and light deployments. No external dependency needed.
- Client SMTP, SMTPS, POP v3 and POPS v3 connectors are provided based on JavaMail and a custom email XML format.
- Client JDBC connector based on the JDBC API, a custom request XML format and the JDBC WebRowSet interface for XML responses.
- Client FILE connector supports GET, PUT and DELETE methods on files and directories. In addition, it is able to return 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 SOLR connector to call embedded Apache Lucene Solr search and indexing engine.
Available Representations
- Automated marshalling and unmarshalling between POJOs and representations based on an extensible converter service. Leverages XStream for XML and Jackson for JSON. Also works with a GWT and Java object serialization.
- Built-in support for XML representations (JAXB, JibX, DOM or SAX based) with a simple XPath API based on JDK's built-in XPath engine.
- Integration with the FreeMarker and Velocity 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 readable or writable byte channels, BIO input or output byte streams, BIO reader and writer character streams.
- Support for Atom, RSS and JSON standards via several extension including ROME integration.
- Integration with Apache Lucene Tika to support metadata extraction from any representation.
Flexible configuration
- Complete configuration possible in Java via the Restlet API
- Configuration possible via Restlet XML and WADL files
- Servlet adapter provided to let you deploy any Restlet application in Servlet compliant containers like Tomcat, when the usage of standalone HTTP connectors is not possible.
- Implementation of the JAX-RS 1.0 standard API (based on JSR-311).
- Deployment as native services is possible and illustrated using the powerful Java Service Wrapper.
- Extensive integration with popular Spring IoC framework.
- Deployment to Oracle 11g embedded JVM supported by special extension.
- Logging based on JULI (java.util.logging) with an extensibility system, including an adapter for SLF4J.
Security
- Supports Google SDC (Secure Data Connector) to connect to intranets from public cloud applications
- Supports HTTP Basic and Digest authentication
- Supports Amazon S3 authentication
- Supports Microsoft Shared Key and Shared Key Lite authentication (client side only)
- Supports OAuth 2.0 authentication
- Supports HTTPS (HTTP over SSL)
- Supports SMTPS (SMTP over SSL) and SMTP-STARTTLS
- Supports POPS (POP over SSL)
Scalability
- Fully multi-threaded design with per-request resource instances to reduce thread-safety issues when developing applications.
- Intentional removal of Servlet-like HTTP sessions. This concept, attractive as a first sight, is one of the major issue for Servlet scalability and is going against the stateless exchanges promoted by REST.
- Supports non-blocking NIO modes to decouple the number of connections from the number of threads.
- Supports asynchronous request processing, decoupled from IO operations. Unlike the Servlet API, the Restlet applications don't have a direct control on the outputstream, they only provide output representation to be written by the server connector.
Copyright 2005-2014 Restlet
Restlet is a registered trademark of Restlet S.A.S.