RAD SERVER - delphiday.it€¦ · § Multi-tenancy DOCUMENTING YOUR APIS Automatic doc support...
Transcript of RAD SERVER - delphiday.it€¦ · § Multi-tenancy DOCUMENTING YOUR APIS Automatic doc support...
RADSERVER
MarcoCantu,[email protected]:@marcocantu
AGENDA(INTRODUCTION)
§ WhatisRADServer§ TechnicalfoundationsofRADServer§ JSONsupport§ ReturningJSONforJavaScriptandExtJSclients• SupportingHTMLandrelatedstaticfiles
§ UsersandPermissions§ Analytics
2
AGENDA(ADVANCED)
§ ExposingFireDACdatabasedata• Streaming• BatchMove• MetaDatamanagement
§ Advancedusersmanagement• Customlogins
§ Distributedresourcemanagements(ThingPoints)
§ NotesonDeployment
3
4
PARTI:RADServerIntroduction
WHYRADSERVER?
▪ Rapidlyconnectyourappstoyourenterprisedatabasesandserviceshostedon-premisesorinaprivatecloud
▪ Makeenterprisedataeasilyavailableoneverydevice,keepingitsecure
▪ Includesuserandgroupsusageanalytics,alongwithRESTAPIcallsanalytics
5
RADSERVERQUICKOVERVIEW
§ THEPERFECTBACK-ENDFORDELPHIANDC++BUILDERAPPS
REST End Point Publishing
Integration Middleware
Application Services
InterBaseServerIncluded
• PluginEMSPackage
RADSERVEROVERVIEW
RADServer(EMS)
• Userstracking• RESTAPIanalytics
EMSClients• RestAPI
• InterBaseToGolicensesincluded
EMSDBConsole
RADSERVERARCHITECTURE
RADSERVERARCHITECTURE
• RADServerServer:ExposesRESTAPI– Built-inresources
• Users,Groups,Version– Customresources
• Developerscreatepackageswithmodulesthatregisternewresources
• RADServerDatabase:Storesusersandanalyticsdata– UserInterBase,licenseisincluded
• RADServerConsole:TrackStatusandUsage
FIRSTSTEPSINPUBLISHINGAPIS
§ CreatinganEMSresourcepackage• ImplementingtheRESTAPIs• Executingtheserver• CallingtheAPIsformabrowseroraclientapp
§ Examiningtheconsole• Andtheusermanagementapp
§ Configurationwizards• AndtheEMS.INIfilekeysettings
RADSERVERPACKAGES
• AddresourcestoRADServer– MappedtoURI
• Wizardshelpcreatepackagesandaddaresourcetoanexistingpackage– RADServerPackageWizard,optionallyaddsfirstresource
– RADServerModuleWizard,formoreresources
RADSERVERCLIENTS
• Experimentingwithabrowser• UsingtheRESTdebugger• ClientsmakeRESTAPIcalls
• AnyHTTPlibrarywouldwork• BaaSarchitecturefortheclientside
– EMSProvidercomponenttoconnect– UseBAASComponentsforservices
• TBackendQuery,TBackendUser,TBackendEndpoint– HandyTEMSFireDACClientcomponent
• FortransferringdataanddeltapacketsbetweenclientandEMSserver
MOREONJSONSUPPORT
§ JSON=JavaScriptObjectNotation§ JSONbutnotonly
• JSONobjectsandstrings• JSONstreaming
§ Returningstaticfiles• FortestinglocallyHTML+JSapps
RESOURCESANDENDPOINTS
§ GetandGetItem§ Put,Post,Delete§ QueryparamsandotherHTTPrequestinformation
USERSANDPERMISSIONS
§ Basicusersmanagement• Userendpoints• Usersauthentication• BackendAuthcomponent
§ Permissions• Usersauthorization• Groups
ANALYTICS
§ Built-inuserandAPIanalytics
20
PARTII:RADServerAdvanced
RADSERVERANDFIREDAC
▪ FireDACJSONStreaming• SaveToStream,LoadFromStreamwithsfJSONformat
• Exposeasresource,consumeviaBackendEndPoint
▪ UsingtheBatchMovearchitecture▪ UseFDSchemaAdapter
• Capturesmaster/detailrelationshipsonserver• Exposesthesameontheclient• Directhookstostreaming,invocation
USINGFDSCHEMAADAPTER
▪ Let’slookatademobasedonFDSchemaAdapter• ARADServer• AVCLdesktopEMSclient
▪ Using:• FireDACwithmaster/detailstructure• StreamingbasedonFDSchemaAdapter
▪ DemoshipswithRADStudio
22
ADVANCEDFEATURES
§ Advancedusersmanagementandcustomloginmodules
§ Integratedpushnotificationssupport§ EdgeModulesorThingPoints§ Multi-tenancy
DOCUMENTINGYOURAPIS
▪ Automaticdocsupport▪ PublishingcustomAPIendpointsdocs
• SwaggerRESTfulAPIDocumentationSpecification• JSONorYAMLformats
DEPLOYINGRADSERVER
▪ InterBaseServer▪ RADServer:ServerandConsoleapplications
• Standaloneserversfordevelopment(5users)• DeploymentISAPI/Apachelibrary
▪ RunonWin32orWin64▪ CustomAPIsaredeployedusingEMSpackages
• StandardDelphiorC++BuilderBPLfiles▪ EMS.INI
25
26
THANKS!Anyquestions?Youcanfindmeat:@[email protected]