After reading (nearly) the whole ebook and taking a look at the API
i am still asking myself how to realize “traditional” web server behaviour with opa.
I understand (at least i believe that) that opa links external resources specified at
compile time into the executable, making them immutable and permament.
But what if, say, i would want to change the stylesheet of an application without recompiling it?
There seems to be a few methods in the stdlib (apidoc) but they are not covering
what i am used to from other programming languages.
A possible solution i could think of is making use of the internal database,
but that looks like a bit of an overkill for something simple like traditional File I/O.
Edit: this blog post explains more about dealing with external resources in Opa.
Long story short: you’ll rarely work with external files in Opa.
Let me try to break this down. Opa will indeed embed resources. But for development mode you indeed just want to be able to tweak them (mainly CSS) and see changes immediately. If you compiled your program in a non-release mode then it will support this kind of actions (try
--help, below is an excerpt)For many other editable&changing resources one would indede use the database.
And if you really need to work with files (again: with Opa you’ll need it much less than with traditional web languages) then take a look at
stdlib.ioand, for advanced use, atBslFilemodule with bindings to Ocaml functions for file manipulation.