Download - Rollbase via de REST adapter koppelen met OpenEdge

Transcript
Page 1: Rollbase via de REST adapter koppelen met OpenEdge

Rollbase OpenEdgeVia de REST adapter naar OpenEdge

PUG NL, 16-04-2014Bronco Oostermeyer

Page 2: Rollbase via de REST adapter koppelen met OpenEdge

Introductie

{"speaker": [ { "id": 1, "voornaam": "Bronco", "achternaam": "Oostermeyer", "bedrijf": "Flusso" }]}

Page 3: Rollbase via de REST adapter koppelen met OpenEdge

Agenda

- OpenEdge REST Adapter- Mobile Services- Koppeling vanuit Rollbase

Page 4: Rollbase via de REST adapter koppelen met OpenEdge

OpenEdge REST adapter

• REST = Representational State Transfer• Architectuur, geen protocol• Zeker geen standaard

• In het kort• Datauitwisseling via HTTP• Data via JSON (JavaScript Object Notation)• Benaderbaar in iedere technologie• WebServices zonder de SOAP overhead

Page 5: Rollbase via de REST adapter koppelen met OpenEdge

REST adapter - implementatie

Met PSDOE wordt een tomcat geïnstalleerd

Page 6: Rollbase via de REST adapter koppelen met OpenEdge

REST Adapter – Servicetypes

• REST Services• GET: http://www.flusso.nl/pug/rest/pug/speaker/{:id}• Zeer flexibel• Relatief veel zelf doen

• Mobile Service• GET: http://www.flusso.nl/pug/rest/pug/speaker?filter=...• Standaard CRUD ondersteuning• Service contract via catalog• JSDO op clientside mogelijk• Nodig voor Rollbase

Page 7: Rollbase via de REST adapter koppelen met OpenEdge

Mobile Services - vooraf

• PDSOE “verplicht”!• Neemt zeer veel werkuit handen• Zonder is eigenlijk niet te doen

Page 8: Rollbase via de REST adapter koppelen met OpenEdge

Mobile services - flow

• Creëer dataset / temp-table include file• Creëer een Business Entity• Koppel de BE aan de Mobile Service• Publish• Testen

Page 9: Rollbase via de REST adapter koppelen met OpenEdge

Mobile services - data

• Data first• Definitie (static!) temp-table of dataset in include

define temp-table ttspeaker no-undo before-table btspeaker field id as integer field voornaam as character field achternaam as character field bedrijf as character . define dataset dsspeaker for ttspeaker.

Page 10: Rollbase via de REST adapter koppelen met OpenEdge

Mobile services – Business Entity

• Creeer Business Entity• Bevat methods die door de REST Adapter worden aangesproken

Page 11: Rollbase via de REST adapter koppelen met OpenEdge

Mobile services – Business Entity (2)

Page 12: Rollbase via de REST adapter koppelen met OpenEdge

Mobile services – Business Entity (3)

@program FILE(name="SpeakerBE.cls", module="AppServer")[email protected] FILE(type="REST", executionMode="singleton", useReturnValue="false", …)[email protected] FILE(name="SpeakerBE", URI="/speaker",

schemaName="dsspeaker", schemaFile="PUG/AppServer/pug/data/dsspeaker.i").

class pug.logic.SpeakerBE: …

@openapi.openedge.export(type="REST", useReturnValue="false", writeDataSetBeforeImage="false")[email protected](type="REST", operation="read", URI="?filter=~{filter~}",

alias="", mediaType="application/json"). method public void ReadSpeakerBE(filter as character, output dataset dsspeaker):end method.

Class definitie:

Lees method:

En de methods: CreateSpeakerBE, UpdateSpeakerBE & DeleteSpeakerBE

Page 13: Rollbase via de REST adapter koppelen met OpenEdge

Mobile services – Service

Page 14: Rollbase via de REST adapter koppelen met OpenEdge

Mobile services – Resultaat

• Catalog file (PUG.json)• In WebContent map (PDSOE project)• Service definities: path, operations• Data definities

• WAR file (PUG.war)• Web Archive (ZIP voor Tomcat)• Wordt in PDSOE automatisch

gepublished• <oe-install>\servers\tomcat\pdsoe

Page 15: Rollbase via de REST adapter koppelen met OpenEdge

Mobile Services - Testen

• Via HTTP testtool (Postman in Chrome, RESTClient in Firefox)• Mogelijkheid om te bekijken/beinvloeden wat er exact plaatsvindt• Aparte testcases (HTTP OE)

• GET Read• POST Create• PUT Update• DELETE Delete

• Fiddler• Inzicht!

Page 16: Rollbase via de REST adapter koppelen met OpenEdge

Rollbase/OE – high over architectuur

PUG.json

JSDOhttp://www.flusso.nl/pug/rest/pug/speaker

AppServer

REST Adapter

PUG.war

Rollbase

Page 17: Rollbase via de REST adapter koppelen met OpenEdge

JSDO

JavaScript Data Object (progress.js)• verzorgt communicatie naar de AppServer• CRUD• Invoke

• Werkt samen met progress.session.js• Local data store• Data handling methods (foreach!)• Bruikbaar voor Mobile Apps, Rollbase en … “standard” websites

Page 18: Rollbase via de REST adapter koppelen met OpenEdge

Rollbase – OpenEdge adapter

Page 19: Rollbase via de REST adapter koppelen met OpenEdge

Rollbase – OpenEdge adapter (2)

Page 20: Rollbase via de REST adapter koppelen met OpenEdge

Rollbase – OpenEdge adapter (3)

Page 21: Rollbase via de REST adapter koppelen met OpenEdge

Rollbase – OpenEdge adapter (4)

Page 22: Rollbase via de REST adapter koppelen met OpenEdge

Maar…

• Relaties tussen (OE) objecten in Rollbase nog niet mogelijk (volgende RB release?)• REST/Mobile services bieden nog geen ondersteuning Before Image informatie (11.4?)• Mobile / REST: twee verschillende werkwijzes (potentieel dubbel werk)

Page 23: Rollbase via de REST adapter koppelen met OpenEdge

“to do”

• PDSOE project inrichting• Authentication• Deployment

Page 24: Rollbase via de REST adapter koppelen met OpenEdge

Vragen?

Page 25: Rollbase via de REST adapter koppelen met OpenEdge

Volg ons op:

Page 26: Rollbase via de REST adapter koppelen met OpenEdge

Links

• http://www.progress.com/news-and-events/events/exchange-2013-presentation-download-center• Track 1 & 2

• http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm (academisch)

• http://www.infosupport.com/RESTful_Webservices_Paul_Bakker (praktisch)