A space to discuss GraphQL queries, mutations, troubleshooting, throttling, and best practices.
I'm just trying to follow the basic example of the Storefront API, and it seems if I set `Content-Type` to `application/graphql` (see screenshots) it gives me this error:
{ "errors": [ { "message": "Parse error on \"query\" (STRING) at [1, 2]", "locations": [ { "line": 1, "column": 2 } ] } ] }
Now if I set `Content-Type` to `application/json` it seems to work, but then I can't get it to return any product or collection data. Is this a documentation error or am I doing something something basic wrong here?
Solved! Go to the solution
This is an accepted solution.
Hi @drewrbaker,
For the most part with any HTTP client or library you would use application/json. Setting the header to application/graphql means to explicitly treat the HTTP POST body as the contents of a GraphQL query string, so the format you are passing is invalid. See https://graphql.org/learn/serving-over-http/ for a little more explanation.
To get more collection or product data you would need to add more query parameters to the query you are making. All you are requesting is the id and handle. Check our documentation for all the possible parameters.
Ryan | Shopify
- Was my reply helpful? Click Like to let me know!
- Was your question answered? Mark it as an Accepted Solution
- To learn more visit the Shopify Help Center or the Shopify Blog
This is an accepted solution.
Hi @drewrbaker,
For the most part with any HTTP client or library you would use application/json. Setting the header to application/graphql means to explicitly treat the HTTP POST body as the contents of a GraphQL query string, so the format you are passing is invalid. See https://graphql.org/learn/serving-over-http/ for a little more explanation.
To get more collection or product data you would need to add more query parameters to the query you are making. All you are requesting is the id and handle. Check our documentation for all the possible parameters.
Ryan | Shopify
- Was my reply helpful? Click Like to let me know!
- Was your question answered? Mark it as an Accepted Solution
- To learn more visit the Shopify Help Center or the Shopify Blog
Thanks Ryan. I'd recommend you update the docs about using application/json, it tripped us up for awhile. Thanks!
Yes!!! This same documentation issue caused us to waste days! Please update ASAP!
The documentation in question is here. It shows the Content-Type as application/graphql, but for client tool posting, it should be application/json.
@MozzoERP It needs to be application/graphql for CURL like the example says. I will mention to the docs team that we can add a note about HTTP clients requiring application/json.
Ryan | Shopify
- Was my reply helpful? Click Like to let me know!
- Was your question answered? Mark it as an Accepted Solution
- To learn more visit the Shopify Help Center or the Shopify Blog
Just a reminder to update the documentation. This also gave me a hard time.