Rupert, I've been doing something very similar and it is proving very worthwhile, > so I would encourage you to pursue this. >
Thanks (: > For Elm, I output one (big) file called Model.elm, that gives me the data > model mapped onto Elm, and encoders and decoders for it. Then for each > grouping of endpoints (each service implemented in Java provides the > grouping) I generate one Elm file that implements the Http logic for the > service. > I've come to the same file structure, because JSON API allows for included resources. For example, articles can include their author an vice versa, which means those decoders have to be defined in a common file. I'm trying to wrap them in one module per resource, though. > Each service requires a set of callback functions to be passed in - one > for each endpoint, plus one for each endpoint when it results in an error, > plus a default error handler for cases when the endpoint specific error > handler doesn't process the error. > I'm taking a different approach. I'm using the RemoteData library to track the (possibly error) state of each ID'd resource, so if there's an error, it's just stored. You won't know until you try to get that ID and you wind up with the Failure case of the RemoteData type. I'm also planning on having an error log that's written to in opaque events and exposed read-only through an API. > Another possibility would be to use an API description meta-data such as > Swagger. A Swagger codegen for Elm could easily output something useable. > I've used both Swagger and JSON API before, and I'll say that JSON API has almost no downsides but Swagger is much more an engineering tradeoff. An Elm swagger codegen is something that should exist but I'm taking a different approach. > I think Elm will be well suited to writing code generators - in a manner > similar to how it 'codegens' Html. You can design a set of functions for > constructing the component parts of the output language you are working > with. Elm is good for doing complex AST manipulation and it can be set up > to guarantee correctly formed output. Code generation of Elm in Elm will be > a mind bender. > I'm hesitant to rely on server-side rendering Elm when it's not officially supported (I say that as the co-author of Elm test and Richard's shell utility for it does exactly that, so maybe I'm not being consistent). I'm also a little less concerned with well-formed output, since elm-format can smooth over a lot of bumps in a hacked-together system. I'm more comfortable in Ruby but Noah Hall has written some JSON tools in Python that I'd like to build on if it makes sense to do so (he's left NRI so maybe not?). Thanks again for your encouragement! -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to elm-discuss+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.