graphprotocol / graphprotocol/graph-node
Add GraphQL GET support for subgraph endpoints
@dotansimha y travaille déjà.
Depuis le 4/1/2022.
- Langage dominant
- Rust
- Étoiles
- 3.2k
- Forks
- 1.1k
- Merge moyen
- 4 j 1 h
- PR mergées (30 j)
- 1
Description
Do you want to request a feature or report a bug?
I understanding it as bug, since GET requests should be supported by GraphQL compatible services.
https://graphql.org/learn/serving-over-http/#http-methods-headers-and-body
What is the current behavior?
Currently when accessing a subgraph URL using a GET request one gets redirected to /graphql (which is expected), however the /graphql handler does not work as expected.
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.
Here is an example:
curl \
--data '{"query":"query{signals(where:{id:\"0xb855e1847f49326ea13daeb454707faf4577604828827a780a81620000c4c2cf\"}){timestamp}}"}' \
'https://api.thegraph.com/subgraphs/id/QmXe1SyxVqha6ipb8d3hht4WZaVzy43MUVXLoqXvYrb9dX'
Returns:
{"data":{"signals":[{"timestamp":"1632414153"}]}}
The same is expected to but is not returned by:
curl \
'https://api.thegraph.com/subgraphs/id/QmXe1SyxVqha6ipb8d3hht4WZaVzy43MUVXLoqXvYrb9dX/graphql?query=query%7Bsignals(where:%7Bid:%220xb855e1847f49326ea13daeb454707faf4577604828827a780a81620000c4c2cf%22%7D)%7Btimestamp%7D%7D'
Here is a sample GraphQL URL that supports both modes:
POST
curl \
-H "Content-Type: application/json" \
--data '{"query":"{movies{name,genre}}"}' \
'https://n7b67.sse.codesandbox.io/graphql'
GET
curl \
'https://n7b67.sse.codesandbox.io/graphql?query=%7Bmovies%7Bname,genre%7D%7D'
What is the expected behavior?
GET requests should return the same results as POST requests. The difference is that the payload is passed in the URL's query string of the GET request, instead of the POST body.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Évaluation
Cette issue n'a pas encore été évaluée.