Bon, dus als k t nu goed begrijp gebruik je SAPUI, een clientside MVC framework dat eigenlijk bedoeld is om gemakkelijk met een SAP server ergens te gaan interfacen. Dat is dus (en neem da nie verkeerd op) waarom ik zo tegen hapklare brokken ben waar je als "developer" eigenlijk totaal geen benul hebt van hoe je web stack eigenlijk in mekaar zit.
En nu proberen in lekentaal duidelijk te maken hoe de vork aan de steel zit…*god help me.
Je SAPUI Webserver is eigenlijk een development server die op de achtergrond in gang gestoken wordt om die SAPUI HTML+JS pagina's te serven. Wat die juist is, god weet het, da kan gerust een Jetty of een Tomcat zijn of misschien zelfs (als je onder Visual Studio draait) een Visual Studio webserverke, wat eigenlijk neerkomt op een kleine IIS server. Nu, dat is eigenlijk enkel bedoeld als development server om je SAPUI appje ergens op een lokale poort te gaan hosten. Da's totaal nie bedoeld om in production gebruikt te worden, je gaat die app willen mounten op een echte webserver zoals Apache, nginx of IIS (alhoewel ik m'n reservaties heb over die laatste, maar kom).
Je probleem in development oplossen kan je daar voorlopig rond werken (je problemen zijn nog niet van de baan, je omzeilt ze gewoon tijdelijk). Zoals er daar een paar mensen vermelden kan je in zowat elke browser (of da nu Chrome, Safari of IE en wrsch zelfs Firefox is) die beveiliging voor requests naar externe domeinen afzetten. Zoek zelf op hoe dat moet, je kan ook googlen. Je kan dat echter voor de eindgebruiker niet doen en eigenlijk moet je dat voor jezelf doen in een browser die je voor niets anders zal gebruiken. Het is enorm
GEVAARLIJK omdat je jezelf openstelt voor XSS attacks. Met die basic webserver die SAPUI in development gebruikt ga je gewoon nie anders kunnen, da's een very basic server die nie meer doet dan paginakes afleveren. Daarmee ga je dus perfect aan die externe SAP gaan kunnen en je app kunnen afwerken. Maar eens dat af is, ga je je toch echt moeten gaan verdiepen in de
echte webserver waar je je app op gaat mounten.
Maar dan begint eigenlijk het echte werk. Je zal al die externe URLs uiteindelijk toch lokaal moeten aanspreken, zoals ik al in de vorige posts uit de doeken deed. Dus alles wat je daar extern aanroept, ga je de url naar een lokale URL moeten aanpassen, die eerst door de webserver zal passeren. Ik heb je een PHP proxy aangeraden omdat ik in de veronderstelling was dat je toch al in PHP bezig was (wat dus niet t geval is) en je je daar dus redelijk in thuisvoelde. Een webserverbased proxy zou idd een betere oplossing zijn, maar da's een bitch om te configureren (maar t zal nodig zijn). Je zal dus voor je production omgeving je SAPUI HTML+CSS code moeten hosten op Apache, nginx of IIS. Persoonlijk zou ik nginx aanraden, die is gemakkelijker te configureren dan Apache, voor IIS moet je eerst een brainwash cursus Microsoft volgen om te geloven dat dat een goeie webserver is.
Het principe van een webserver based proxy komt eigenlijk op hetzelfde neer als die PHP proxy die ik je uitgelegd heb, maar dan al heel robuust geïmplementeerd. Je stuurt vanop de browser dus een request naar mijndomein.be/external/somethingsomething. De webserver krijgt dat binnen en overloopt z'n vhost regeltjes en ziet: owla, ik heb hier een request naar /external en in m'n configuratie staat ingesteld dat als ik die url in kwestie zie, dat ik die moet omvormen naar sapserver.com/somethingsomething en als ik het resultaat krijg, dat ik dat als antwoord moet teruggeven.
Hoe je die proxyregels moet instellen in je vhost config hangt af van de webserver die je gebruikt en is eigenlijk een vak op zichzelf. Ik ga zelfs meer zeggen, je zal er waarschijnlijk (gezien je kennis momenteel) als je t zelf wil doen een boek voor moeten lezen of alleszins enorm veel opzoeken en trial en error werk doen. Ofwel laat je een externe consultant dat werk voor je doen (en nee, dank u, ben geen kandidaat

).
Een framework gebruiken zonder alles te snappen dat errond hangt doet mij altijd aan die schitterende quote van Homer Simpson denken:
"Ooh, look at me! I'm making people happy! I'm the Magical Man from Happy-Land, in a gumdrop house on Lollipop Lane!". Alles is goed zolang het werkt en het doet alles automagisch…*en dan werkt het nie meer en je weet gewoon nie waarom.
Samengevat, in development kun je je er gemakkelijk vanaf maken en je browser in onveilige modus zetten om iets gedaan te krijgen. Eens je app af is, zal je via een proxy moeten werken (op webserverniveau) en daarvoor heb je uitgebreide kennis nodig van de webserver die je in production gaat gebruiken om de app op te hosten. Hebben jullie die niet in huis, dan ga je daar professionele hulp voor moeten zoeken.
Ik weet dat het allemaal een beetje cru mag klinken, maar ik kan in dit geval nie veel anders dan de feiten op een rij te zetten. Ik doe het om je te helpen, maar k vrees ervoor dat alles wa k zeg je waarschijnlijk al als chinees in de oren zal klinken
