Re:Scala vs. Node.js as a RESTful back end server (2015)
by kazagistar on Saturday April 23, 2016 @01:48PM
(#11556541)
I have a question I have been trying to figure out for a while. All the examples of clients that use GraphQL seem to be javascript; is there any support for writing, for example, a Java client to talk to a GraphQL backend? This would really help make it easier to port infrastructure over piece by piece.
[ Parent
| on HN ]
Re:Scala vs. Node.js as a RESTful back end server (2015)
by e1g on Sunday April 24, 2016 @04:31AM
(#11558994)
GraphQL defines the query language, but uses simple HTTP as the transport. It's not like like redis or mysql - those use custom protocols and so require special clients to use them. GraphQL backends are like Elasticsearch backends - you access them by hitting the exposed HTTP endpoint with your query in plain text. You could do this with any HTTP client library in any language, or even with curl.
Re:Scala vs. Node.js as a RESTful back end server (2015)
by kazagistar on Sunday April 24, 2016 @02:36PM
(#11560768)
Thats true, but in a typed, structured language, you generally build some kind of data structure to deserialize responses into. With REST endpoints, each response can be translated to a specific predefined object in a client library. GraphQL seems to, by design, ignore this kind of usage in favor of the "heterogenus untyped dictionary responses"... do I really have to write custom data types for every single different query?
Re:Scala vs. Node.js as a RESTful back end server (2015)
by e1g on Sunday April 24, 2016 @09:00PM
(#11562037)
I think get this now - with SOAP/RPC/REST we can establish the interaction contract by explicitly defining inputs and outputs. With that contract, we can draw clearly defined system boundaries, give better assurances to the developer that they are doing the right thing, and improve testing.
You're right - in the scale of app-level problems, GraphQL is just a low-level protocol. It requires language-specific libs to address these higher-level problems (provide interfaces, structs, query typing, etc). As a very basic example, programatically building a GraphQL query is unnecessary complex outside of JS because many languages don't yet have a QueryBuilder for the GraphQL syntax. There are some community efforts, but as of yet no heavy corporate players to drive GraphQL-specific dev (e.g. like Pivotal/Sensio/Sencha did for their respective fields).
Re:Scala vs. Node.js as a RESTful back end server (2015)
by hackerboos on Saturday April 23, 2016 @02:01PM
(#11556603)
Re:Scala vs. Node.js as a RESTful back end server (2015)
by kazagistar on Saturday April 23, 2016 @04:42PM
(#11557341)
I found that link before, but aren't those all backends?
Re:Scala vs. Node.js as a RESTful back end server (2015)
by lkrubner on Sunday April 24, 2016 @08:45PM
(#11561989)
You can write the server in any language, and you can also write the client in any language. As a point of comparison, consider SQL databases such as MySQL or Oracle or MongoDB. There are clients written in dozens of different languages.