Papercut: duplicate type names do not cause an error when building a Schema object
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- fsharp
- Área
- api
Línea de trabajo
Comienza en Schema(schemaType), utilizando los puntos de entrada Define.Object y Executor que se muestran en la reproducción. Traza cómo el esquema recopila los tipos con nombre y determina dónde se aceptan nombres duplicados. El trabajo estará terminado cuando la construcción del esquema falle para las dos definiciones de Book, y la reproducción o una comprobación de validación específica confirme que el error se produce antes de la ejecución.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
This script demonstrates the issue:
#r "nuget: FSharp.Data.GraphQL.Server, 1.0.7"
open FSharp.Data.GraphQL
open FSharp.Data.GraphQL.Execution
open FSharp.Data.GraphQL.Types
type Book =
{
Title : string
Year : int
}
let bookType1 =
Define.Object(
name = "Book",
description = "Book type 1",
fields =
[
Define.Field(
"title",
String,
fun ctx (x : Book) -> x.Title
)
]
)
let bookType2 =
Define.Object(
name = "Book",
description = "Book type 2",
fields =
[
Define.Field(
"title",
String,
fun ctx (x : Book) -> x.Title
)
Define.Field(
"year",
Int,
fun ctx (x : Book) -> x.Year
)
]
)
let schemaType : ObjectDef<unit> =
Define.Object(
name = "Query",
fields =
[
Define.Field(
"books1",
ListOf bookType1,
fun _ () -> []
)
Define.Field(
"books2",
ListOf bookType2,
fun _ () -> []
)
]
)
let schema = Schema(schemaType)
let executor = Executor(schema)
let query = """
{
books2 {
title
year
}
}
"""
let result =
executor.AsyncExecute (query)
|> Async.RunSynchronously
let output, errors =
match result.Content with
| GQLResponseContent.Direct (output, errors) -> output, errors
| x -> failwith $"Unsupported: %A{x}"
printfn $"Output:\n%A{output}\n"
for error in errors do
printfn $"Error:\n%A{error}\n"
Output:
map []
Error:
("Field 'year' is not defined in schema type 'Book'.", ["books2"; "year"])
The two book types share a name, and the library silently picks bookType1.
I think that duplicate names should cause schema building to fail, so that this error is caught earlier.
let schema = Schema(schemaType) // Should raise an exception on an invalid schema
Any thoughts?
- Lenguaje dominante
- F#
- Estrellas
- 406
- Forks
- 74
- Merge medio
- 1 d 8 h
- PR fusionados (30 d)
- 14
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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 fsprojects/FSharp.Data.GraphQL
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
-
fsprojects/FSharp.Data.GraphQL#573 · 1 reacción · 2 asignados ·
-
FR: Suave package Abierto
fsprojects/FSharp.Data.GraphQL#566 · 1 comentario · 1 reacción · 2 asignados ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
Todos los issues de fsprojects/FSharp.Data.GraphQL
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
speaches-ai/speaches#678 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
[BUG] ECR GetAuthorizationToken returns a proxyEndpoint for the default region, not the request's Abiertobug ecr
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
conda-forge/spacy-feedstock#177 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100