Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Restlet Framework NG

521 Aufrufe

Veröffentlicht am

10 years have passed since the launch of Restlet Framework v1, the first RESTful API framework created, and thanks to our efforts and our open source community, we have gathered a lot of experience along the way. In parallel, the continuous innovation, competition and maturation in the web API space in general and in the Java space as well has created an opportunity to innovate again. The goal is to have a prototype of the v3 of the framework working, based on Netty and Reactive Streams, supporting HTTP/2 and async APIs in a RESTful way.

Veröffentlicht in: Internet
  • Als Erste(r) kommentieren

Restlet Framework NG

  1. 1. NG @jlouvel
  2. 2. Looking backward
  3. 3. More APIs API centric software Mobile app backend IoT backend Micro service Partner API gateway Web app backend Public API gateway Social bot backend Automated workflow
  4. 4. More participants User Developer Writer Tester Operator API Team Manager
  5. 5. More approaches Contract-driven Code-driven Behavior-driven Data-driven Service-driven API Project Test-driven
  6. 6. API x DevOps = Better software delivery DEV API centric software QAOPS
  7. 7. Looking forward client&server API Centric DevOps Next version 3 Java 8 HTTP 2.0 reactive REST DSL API Centric Java EE Current version 2 client&server Java 7 HTTP 1.1 synchronousREST portable
  8. 8. New runtime stack Converters InjectorsAuthenticators Reactive Streams 1.0 Java 8.0 Restlet Framework Runtime Netty 4.1 SLF4J 1.7
  9. 9. Summer kickoff ● Simplified code base ○ Removed multi-editions support and kept only 8 extensions ○ Java EE, GAE and GWT specific code removed ○ Only Java SE with compatibility with Android and OSGi ○ Used a new repository to remove historical weight from Git (binary dependencies) ● Reset build ○ Now regular Maven project structure and dependencies ○ Gradle is considered (now supported by default in Eclipse Neon!) ● Put new runtime stack in place ○ Java 8, SLF4J, Netty, Reactive Streams
  10. 10. REST Fest hack day ● Made Netty to Restlet API communication work :-) ○ Lots of debugging to make get an HTTP request/response work ○ Used a Reactive Streams adapter for Netty developed by Play! Team ■ Opportunity to contribute back and help moved as subproject of Netty (HTTP 2.0) ○ Still limited to in-memory representations ● Started refactoring the Restlet API ○ Refactoring the Representation class to separate the data from the metadata better ○ Introducing a new Data class hierarchy ■ Facilitate support streaming data ■ Pending work before I go back home :) ● https://github.com/restlet/restlet-framework
  11. 11. Restlet API processing Restlet annotated Java interfaces Dynamic Restlet client proxy Client program Dynamic Restlet server component Server implementation Server configuration HTTP call Java call Java call Client configuration uses implements introspects (re)generate implements API contract definition
  12. 12. What’s next? ● Collect feedback from the community ○ Reach out to Restlet Framework users ○ Reach out to other API developers and DevOps practitioners ● Push REST support further ○ Reactive REST with built-in HTTP 2.0 connector ● Make programming web APIs even more accessible ○ Introduce new abstractions to simplify writing servers and client ○ Support API contract driven approach with code generation and regeneration ○ Look at best ways to add API tooling and DSL support ● Release a 3.0 milestone by the end of 2016