[Incremental Delivery Questions] How is the response protocol determined in different scenarios
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Documentación
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- graphql
- Área
- api, documentation
Línea de trabajo
Comienza con las secciones actuales del borrador de la especificación que cubren la negociación de HTTP Accept, la entrega incremental, los formatos de respuesta y las solicitudes GET. Revisa cada escenario conforme a los requisitos establecidos en el borrador y documenta una única resolución coherente para la selección del content-type, los clientes no compatibles, el comportamiento de ejecución y la compatibilidad con GET.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I have a question regarding how the response protocol is determined for a request that could POTENTIALLY result in multiple payloads.
Scenario: client sends header accept: multipart/mixed with non-"Incremental Delivery" operation
Given we have an operation that does not use defer/stream at all:
query { foo }
Should the response then use the application/(graphql+)json response type or the multipart/mixed response type?
Scenario: clients sends accept: multipart/mixed, application/(graphql+)json with non-"Incremental Delivery" operation
Given we have an operation that does not use defer/stream at all:
query { foo }
Should the response then still use the application/(graphql+)json content-type or the multipart/mixed response type?
According to the current spec draft, the server should always please the order of the accept header listed content-types if possible. Would that still apply if the server is capable of serving both content-types (accept: multipart/mixed and application/(graphql+)json)
Scenario: clients sends header accept: application/(graphql+)json with "Incremental Delivery" operation
query {
foo
... on Query @defer {
bar
}
}
Quote from current Spec Draft:
According to the HTTP 1.1 Accept specification, when a client does not include at least one supported content type in the Accept HTTP header, the server MAY choose to respond in one of several ways. The server MUST either:
Disregard the Accept header and respond with the default content type of application/graphql+json, specifying this in the Content-Type header; OR
Respond with a 406 Not Acceptable status code
Should the server in this scenario still send back multipart/mixed or raise a 406 HTTP error?
Should the fact that the client sent an operation with a defer or stream directive be a hint to the server that the client MUST be able to parse it? A client not supporting it, would probably not have requested it in the first place?
Should the server be responsible for merging the results and sending them as a single result to the client?
Should the server do the execution with the defer and stream executor functionality being disabled?
Scenario: clients sends the HTTP GET method
Is incremental delivery via GET allowed or intended?
- Lenguaje dominante
- JavaScript
- Estrellas
- 428
- Forks
- 70
- Merge medio
- 11 min
- PR fusionados (30 d)
- 4
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de graphql/graphql-over-http
-
Dificultad 3/5 Medio día Aptitud para principiantes 25/100
graphql/graphql-over-http#446 · 3 comentarios ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
graphql/graphql-over-http#415 ·
-
Persisted documents by default?Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
graphql/graphql-over-http#392 · 4 reacciones ·
-
Clarification for `Accept: */*`Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
graphql/graphql-over-http#242 · 8 comentarios ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
graphql/graphql-over-http#216 · 15 comentarios · 1 reacción ·
Todos los issues de graphql/graphql-over-http
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
feature request
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
openlayers/openlayers#17736 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
521xueweihan/HelloGitHub#4326 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Mintplex-Labs/anything-llm#7133 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
Los mantenedores suelen responder en 1 día