4 ms·
Is it possible to do more complex requests in GraphQL, like getting the favorite venues of people that favored "Garaje" or is it left to the API provider?
by aamederen 9y ago
Is it possible to do more complex requests in GraphQL, like getting the favorite venues of people that favored "Garaje" or is it left to the API provider?
- linkmotif 9y agoLeft to the API provider. The provider specifies arguments you can provide per field. You can call those arguments.
- searchfaster 9y agoYes.. Its left to the API provider. Try https://learngraphql.com https://learngraphql.com gives a very good idea of what graphql is. Way better than reading the official documentation or spec. Once I went through it, made up my mind that our API as a service product should support Graphql. Note: I am in no way related to the site.. It is free and I finally actually understood what graphql is in 15 mins.
- SmellTheGlove 9y agoThanks for sharing that link, looks really good. I'll be going through it after work.
- derekdahmer 9y agoNot really. GraphQL mostly provides an alternative to REST when you want to select specific fields and traverse down into relationships with a single query. The closest you could get is the users who rated the business: business(id: "garaje-san-francisco") { reviewers { rating user { name } } } If Yelp wanted to enable that use case, they would add a field to Business like `related_businesses` like: business(id: "garaje-san-francisco") { related_businesses { business { name } } }
- infogulch 9y agoYou can recurse in GraphQL so if they added a `favorited_businesses` field to `user` then it would be possible. Something like this: business(id: "garaje-san-francisco") { reviewers { rating user { name favorited_businesses { id name } } } }
- sleepingeights 9y agoGraphQL looks cool, kind of fancy but simpler way to do some complex SQL without the SQL. Using the business as the root query would be a bit cumbersome, but more like: business(id: "garaje-san-francisco") { reviewers { user { name favorited_businesses favorited_businesses(name: "garaje") } } } If they provide user queries, then something like: user { name favorited_businesses favorited_businesses(name: "garaje") }