Chapter 1. Introducing the Restlet Framework
Figure 1.1. We use the term web applications to refer to web services, websites, and web clients.
Figure 1.2. Decomposition of an abstract resource intoRestlet artifacts
Figure 1.3. Example of one use of the comprehensive and modular Restlet architecture
Chapter 2. Beginning a Restlet application
Figure 2.1. Restlet applications are containers of server resources and/or client
Figure 2.2. Restlet applications are structured into three concentric layers, processing inbound
Figure 2.5. Class diagram of Application and its parent class, Restlet
Figure 2.6. Class diagram of the Context class listing properties and special methods
Figure 2.8. Class diagram showing common org.restlet.routing.Filter subclasses
Figure 2.9. The router is handling three concurrent calls and dispatching them to attached routes.
Figure 2.10. Router dispatching concurrent calls to three target server resources
Figure 2.11. Lifecycle of a server resource for a given call
Chapter 3. Deploying a Restlet application
Figure 3.3. A closer look at the content of a Restlet component
Figure 3.4. Class diagram of the Connector superclass and the Client and Server child classes
Figure 3.5. Virtual host listening on two IP addresses and serving several domain names
Figure 3.6. Using the Servlet engine as an HTTP server connector for a Restlet component
Figure 3.7. Using the Servlet engine as a container of Restlet applications
Figure 3.8. Using the Restlet Framework as a library inside Servlet applications
Chapter 4. Producing and consuming Restlet representations
Figure 4.1. The Variant and RepresentationInfo classes are ancestors of all Restlet representations.
Figure 4.2. The abstract Representation class is the superclass of all Restlet representations.
Figure 4.3. The various ways to consume representations’ content
Figure 4.4. Subclasses of representation
Figure 4.5. Character-based representation classes
Figure 4.6. BIO stream-based representation classes
Figure 4.7. NIO channel-based representation classes
Figure 4.8. Example resource exposing an XML document as representation
Figure 4.9. Partial details of the base XmlRepresentation class
Figure 4.10. Properties and methods of the DomRepresentation class
Figure 4.11. Properties and methods of the SaxRepresentation class
Figure 4.12. XPath-related methods of the XmlRepresentation class
Figure 4.13. XML namespace-related properties and methods of the XmlRepresentation class
Figure 4.14. XML schema validation-related properties and methods of the XmlRepresentation class
Figure 4.15. Properties and methods of the TransformRepresentation class
Figure 4.16. Properties and methods of the JaxbRepresentation class
Figure 4.17. Example resource exposing a JSON document as representation
Figure 4.18. Properties and methods of the JsonRepresentation
Figure 4.19. Properties and methods of the JacksonRepresentation
Figure 4.20. Example resource exposing an HTML document as representation
Figure 4.21. Account resource identified by a URI and represented by three variants
Figure 4.22. Account resource represented by bean serialized in three variants
Chapter 5. Securing a Restlet application
Figure 5.1. HTTPS sequence diagram with TLS/SSL
Figure 5.2. Entities involved when using authentication with Restlet on both client and server sides
Figure 5.3. Interactions between client and server sides during HTTP Digest digest authentication
Figure 5.4. Hierarchy of authenticator classes
Chapter 6. Documenting and versioning a Restlet application
Figure 6.1. The WadlApplication class can be used to describe an application in WADL.
Figure 6.2. The WadlServerResource class can be used to further describe resources in WADL.
Figure 6.3. The partial WADL documentation converted to HTML
Chapter 7. Enhancing a Restlet application with recipes and best practices
Figure 7.1. Displaying the mail-editing form
Figure 7.2. Class diagram of Directory
Figure 7.3. Default error page
Figure 7.4. Customized error page
Figure 7.5. Retrieving Restlet web feeds
Figure 7.6. Redirector class diagram
Figure 7.7. Mail server component split into a web API and a website application
Chapter 8. Using Restlet with cloud platforms
Figure 8.1. Three layers of cloud computing
Figure 8.2. Restlet Framework positioning in cloud layers
Figure 8.3. Restlet as a cloud middleware to deploy, execute, and connect RESTful applications
Figure 8.4. Global architecture of the GAE platform
Figure 8.5. Application list containing the Restlet application
Figure 8.6. Application list containing the deployed Restlet application
Figure 8.7. Overview of Amazon Beanstalk parts
Figure 8.8. Overview of the Elastic Beanstalk tab of the AWS Console
Figure 8.9. Overview of the application creation details
Figure 8.10. Overview of the application while being deployed to AWS Elastic Beanstalk
Figure 8.11. Overview of the Windows Azure platform
Figure 8.12. Structure of the project after adding JRE and Tomcat
Figure 8.13. Creating the new hosted service on which the Azure application is deployed
Figure 8.14. The console displays the status of the service deployment
Figure 8.15. Creation of the worker role and instance after deploying the service
Figure 8.16. All elements of the hosted service correctly deployed, created, and started
Figure 8.17. Systems accessible using the Restlet OData support
Figure 8.18. OData class generation support provided by Restlet
Figure 8.19. AWS Management Console describing the reiabucket element and its elements
Figure 8.20. Access Keys tab provides all available access keys.
Figure 8.21. Configuration of permissions for AWS account to access and manage resources in buckets
Figure 8.22. List of storage accounts present in the Azure console for a subscription
Figure 8.23. All involved parts to implement SDC technology in both Google platform and intranet
Figure 8.24. Cross cloud platform implementation of the SDC tunnel server provided by Restlet
Chapter 9. Using Restlet in browsers and mobile devices
Figure 9.1. GWT application mechanisms
Figure 9.2. Google Plugin for Eclipse installation through Eclipse’s update manager tool
Figure 9.3. Default GWT remoting support
Figure 9.4. Using REST resources from GWT applications without GWT-RPC
Figure 9.5. How the Restlet edition for GWT fits in the overall GWT architecture
Figure 9.7. Full flexibility using GWT-RPC and Restlet for GWT
Figure 9.8. GWT mail client accessing the RESTful web API
Figure 9.9. Implementing reverse proxy using the Redirector class
Figure 9.10. Layers of the Android platform
Figure 9.11. Android SDK Manager
Figure 9.12. Android Virtual Device Manager
Figure 9.13. ADT modules to install through Eclipse’s update manager tool
Figure 9.14. Configuring Restlet JARs for the Android project
Chapter 10. Embracing hypermedia and the Semantic Web
Figure 10.1. Hyperdata and other types of hypermedia
Figure 10.2. The Linked Data technological stack
Figure 10.3. Example RDF graph partially describing Homer Simpson
Chapter 11. The future of Restlet
Figure 11.1. Timeline of the HTTP protocol
Figure 11.2. Parts of the HTTP 1.1 bis specifications
Figure 11.3. WebSocket and REST
Figure 11.5. Potential HTTP/2.0 development
Figure 11.6. Restlet Forge workflow
Figure 11.7. Restlet Platform overview
Figure 11.8. Restlet Studio welcome page
Figure 11.9. Main actors in the web API chain
Figure 11.10. APISpark relationships with the Restlet Platform
Appendix A. Overview of the Restlet Framework
Figure A.1. The Restlet API packages
Figure A.2. Hierarchy of classes in the root package
Figure A.4. Representation hierarchy
Figure A.5. Resource hierarchy
Figure A.7. Security hierarchy
Figure A.8. The Restlet Engine can be extended with pluggable helpers.
Appendix B. Installing the Restlet Framework
Figure B.1. Front page of the installation process
Figure B.2. Read and accept the license.
Figure B.3. Specify the installation directory.
Figure B.4. Choose the Start Menu folder.
Figure B.5. End of the installation process
Figure B.6. List of available items
Figure B.7. List of selected items
Figure B.8. Warning: the content is unsigned
Figure B.9. End of the installation
Figure B.10. Create a new project.
Figure B.11. Enter the project name.
Figure B.12. Open the contextual menu.
Figure B.13. Configure the build path.
Figure B.14. Creating and extending a variable, first page
Figure B.15. Creating a variable
Figure B.16. Listing variables
Figure B.17. Locating the entry to extend the RESTLET_HOME variable
Figure B.18. Extending variables
Figure B.19. Managing variables and user libraries in Eclipse
Figure B.20. Run the main class.
Figure B.22. Create a new project.
Figure B.23. Create a new Java project.
Figure B.24. Choose the project name and location.
Figure B.25. Update dependencies. Figure B.26 Add a new global library.
Figure B.26. Add a new global library.
Figure B.27. Complete the library.
Figure B.28. Add the library dependence to the project.
Figure B.29. Run the main class.
Figure B.31. Choose File > New Project.
Figure B.32. Create a new project.
Figure B.33. Specify the project name, location, and type.
Figure B.34. Specify the source directory.
Figure B.37. Begin configuring the project dependency.
Figure B.38. Adding a dependency
Figure B.39. Run the main class.
Figure B.41. Compile and launch the code.
Figure B.42. Specify the request.
Figure B.44. Use of a ClientResource to test a remote resource
Appendix C. Introducing the REST architecture style
Figure C.1. Multiple forms of the web using REST and HTTP
Figure C.2. The web as a graph of potentially hyperlinked resources
Figure C.3. Relationships between resources, identifiers, and representations
Figure C.4. Anatomy of a resource
Figure C.6. Components communicate via connectors.
Figure C.7. Interaction between a user agent and an origin server
Figure C.8. Evolution of the RPC and distributed objects technologies
Appendix D. Designing a RESTful web API
Figure D.1. Overview of a RESTful web API
Figure D.2. Typical project iteration steps
Figure D.3. Typical project phases defined byUP
Figure D.4. Overview of our RESTful mail system
Figure D.5. Sender exchanging an email with receivers
Figure D.6. System administrator managing accounts
Figure D.7. Account owner composing mails and managing web feeds, contacts, and received mail
Figure D.8. Domain model of the mail system
Figure D.9. Sequence diagram describing the email sending process
Figure D.10. Summary of main analysis and design tasks in ROA/D
Figure D.11. Layers of the ROA/D logical architecture
Figure D.12. Topology of the ROA/D logical architecture
Figure D.13. Deriving the domain model
Figure D.14. Example resources hierarchy as a UML class diagram
Figure D.15. Example resources hierarchy as a UML class diagram describing allowed methods
Figure D.16. Example resources hierarchy as a UML class diagram describing representations
13.58.51.228