Careers

Afstudeeropdracht: Dynamische beheerschermen voor RESTful APIs

De laatste jaren zijn webapplicatie frameworks met een sterke focus op productiviteit van ontwikkelaars zeer in trek geweest. Deze frameworks, zoals Grails, CakePHP en natuurlijk Ruby on Rails, leveren een aantal zaken die het leven van een ontwikkelaar makkelijker maken. Een voorbeeld hiervan is ‘dynamic scaffolding’ en daar gaat deze afstudeeropdracht over.

Bij dynamic scaffolding maakt het framework voor de entiteiten in je domein-model automatisch (runtime) de beheerschermen en logica om standaard CRUD (CreateReadUpdateDelete) operaties te doen. Deze schermen hoef je dus niet meer zelf te programmeren. 

Nu zijn de genoemde frameworks stuk voor stuk server-side MVC frameworks waarbij een domein-model (dat typisch wordt opgeslagen in een relationele- of NoSQL-database) centraal staat en waarbij kennis van dit model gebruikt wordt om de genoemde schermen te genereren.

Fast forward naar vandaag.

Steeds meer van de applicaties die we bouwen bestaan uit een verzameling van (micro-)services met RESTful HTTP gebaseerde interfaces. Daar komt bij dat we de laatste paar jaar een verschuiving zien van gebruik van server-side MVC frameworks met  views in HTML/CSS en ‘tag-on’ JavaScript voor enige dynamiek naar applicaties die volledig client-side gerenderd worden om een rijke gebruikerservaring te creëren, denk aan een framework als AngularJS voor het maken van Single Page Apps.

De architectuur die hier praktisch ontstaat kent een scheiding tussen de presentatie-logica die draait in de browser van de client en voor data verschillende RESTful HTTP services aanroept. Nu zijn we echter wel gewend geraakt aan de luxe om beheer-schermen voor niks te krijgen en dat zijn we nu kwijt. Dus hoe gaan we dat doen nu het model achter een service verscholen zit?

Onderzoek de mogelijkheden beheer-schermen dynamisch te realiseren voor RESTful APIs. Bouw een prototype.

Spreekt de beschreven afstudeeropdracht je aan? Neem dan contact op met Marc Teutelink, marc.teutelink@luminis.eu.

keywords: RESTful API, JavaScript