A simple example that you can follow is in the ENSDEMO namespace, the class is Demo.REST.MathService.cls
 

What I finally did was use this form of $zconvert:

 $ZCONVERT(tRS.%Get("description"),"O","UTF8")

It didn't work. I'm now investigating if the way that AngularJS handles the $http.get has to do with it.

By the way, do you use a modern WYSIWYG editor? I used to use Microsoft Frontpage ages ago, and a bit of dreamweaver too

Thank you very much Sergey!

I have made a few examples with both Angular 1 and 2 and the final decision is: AngularJS (1) , because my team sees it more "mature".

However I want to use the component approach and also Material (https://material.angularjs.org/latest/)

Thank you Sean,

I tried that, however the user still needs a couple of roles in order the Web Service to work:

%DB_ENSDEMO
%EnsRole_Developer

And with those roles, the user has access to Management Portal.

I need that it doesn't happen. I need that the user can't get into the management portal.