3 ms·
Thanks for the example. I am also trying to wrap my head around it. Is it possible to get all that information in one round trip ? I believe that is one of the
by huherto 10y ago
Thanks for the example. I am also trying to wrap my head around it.
Is it possible to get all that information in one round trip ? I believe that is one of the benefits of graphQL.
- base698 10y agoSeems that way, with the added benefit of the client specifying the fields they need. Valuable if the underlying API changes to add a field but the clients can't use it yet.
- lh7 10y ago> Is it possible to get all that information in one round trip ? If we're talking about the same thing, yes. One pattern that I use in my APIs is as follows: Assume a JSON object like: { name: "Joe", colour: [ {red: 0, green: 128, blue: 90}, {red: 35, green: 88, blue: 199} ], hair: { length: { value: 9, uom: "cm"} } I have on occasion provided an API like: # Assume that {id} returns an object like the above. GET /api/{id} # Returns the full object POST /api/{id} # Replaces the object PUT /api/{id} # Overwrites properties in the object GET /api/{id}/name # Returns "Joe" POST /api/{id}/name # Overwrites the name PUT /api/{id}/name # Overwrites the name (also) DELETE /api/{id}/name # Removes the "name" property GET /api/{id}/colour/0/green # Returns "green". Other methods as above. * /api/{id}/hair/length/value PUT /api/{id}/hair/colour # Creates a new property GET /api/{id}/colour/0;2 # Returns the first and third items in the array GET /api/{id}/colour/1/red;green # Returns those two properties from the object. Note that this imposes some restrictions on property naming (no semicolons) And this I never implemented, but I would if I had a need: GET /api/{id}/colour/(0/red;green);(1/blue) # Returns [ { red: 0, green: 128}, {blue: 199} ]
- ec109685 10y agoThe problem is that you are making up the syntax. GraphQL gives you this power in a standard that is machine readable so tools can be built around it.