12

Click here to load reader

Restlet Framework NG

Embed Size (px)

Citation preview

Page 2: Restlet Framework NG

Looking backward

Page 3: Restlet Framework NG

More APIs

API centricsoftware

Mobile app backend

IoTbackend

Micro service

Partner API gateway

Web app backend

PublicAPI

gateway

Social botbackend

Automatedworkflow

Page 4: Restlet Framework NG

More participants

User

Developer

Writer

Tester Oper

ator

APITeam

Manager

Page 5: Restlet Framework NG

More approaches

Cont

ract

-driv

en

Code-driven

Behavior-driven

Data-drivenSe

rvice

-driv

en

APIProject

Test-driven

Page 6: Restlet Framework NG

API x DevOps = Better software delivery

DEV

API centricsoftware

QAOPS

Page 7: Restlet Framework NG

Looking forward

clie

nt &

ser

ver

API Centric

DevOps

Next version 3

Java

8HTTP 2.0

reacti

ve

REST

DSL

API Centric

Java EE

Currentversion 2

clie

nt &

ser

ver

Java

7HTTP 1.1

synch

ronous

REST

portable

Page 8: Restlet Framework NG

New runtime stack

Converters InjectorsAuthenticators

Reactive Streams 1.0

Java 8.0

Restlet FrameworkRuntime

Netty 4.1 SLF4J 1.7

Page 9: Restlet Framework NG

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

Page 10: Restlet Framework NG

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

Page 11: Restlet Framework NG

Restlet API processing

Restlet annotatedJava interfaces

Dynamic Restletclient proxy

Clientprogram

Dynamic Restlet server component

Server implementation

Serverconfiguration

HTTP

call

Java

call

Java

call

Clientconfiguration

uses implements introspects

(re)generate

implements

API contract definition

Page 12: Restlet Framework NG

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