I spent nearly 11 years managing and programming on a small application server (Ubuntu LAMP Stack) at my old job. I never really thought of it as much of a burden as I was physically at the site every day and could legitimately dedicate enough attention to making sure the updates to hardware and software were taken care of.
Of course (as these things tend to happen) I wound up leaving the Texas Bandmasters Association for a better opportunity but have still managed to remain a part of the organization in a consultant capacity doing a bit of application coding (mostly codebase updates). Obviously, having an application server in a place where I am not is no longer practical so the decision was made to the move the application stack into a couple of Digital Ocean droplets.
So far, the transition has been fairly straight-forward and I’ve not run into any snags having updated the majority of the PHP code base to be compatible with version 7.2 this past year. I never fail to be amazed at just how easy it is to rent a bit of server time on someone else’s data center and spool up a couple of virtual instances of linux to run a couple of database enabled web applications.
Not even mad. Not even a little. — $25 dollars a month to make web app hosting someone else’s problem….now THAT is awesome.
I recently discovered that the new Filemaker Server version 18 has a much improved REST api service built right into the technology stack so I’ve been spending some free time writing Delphi code to see if I could successfully make calls to that service, parse out the results and then actually do something useful with them.
While I probably wouldn’t deploy a Filemaker Server instance into production as a legit backend database service (some people do…eww), the drag-and-drop designer portion of the software makes the Admin / Schema Design part of development super convenient for throwaway apps. Hell, enabling API services on any ‘database’ is just 2 clicks away. I like the convenience of that…. A LOT.
As you can see, the initial results are promising — at the very least I am able to successfully send a request for a server authentication token and then use that authentication token to send out a GET request and pull down some real data to work with.
Using stock Delphi components, the process works like this:
From Filemaker — an authenticated GET api call returns a JSON response / TJSONObject. We extract the “data” array from the JSON object into a TJSONArray and then programmatically create a TClientDataSet by looping through the JSON Array and finally piping it into a TDataConnection. From there we can make a simple connection to a DBGrid and voila. Records get displayed and we’re all happy.
I threw together a little git repo in case someone else happens to find this useful. I’m not really planning on pulling down the Filemaker API server anytime soon so it SHOULD still work. Regardless, the code is simple enough that you can probably follow it without too much trouble.