Papercut: duplicate type names do not cause an error when building a Schema object
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- fsharp
- Lĩnh vực
- api
Hướng nghiên cứu
Bắt đầu từ Schema(schemaType), sử dụng các điểm vào Define.Object và Executor được hiển thị trong phần tái hiện. Theo dõi cách schema thu thập các kiểu có tên và xác định nơi các tên trùng lặp được chấp nhận. Công việc được hoàn tất khi việc xây dựng schema thất bại đối với hai định nghĩa Book, và phần tái hiện hoặc một kiểm tra xác thực tập trung xác nhận rằng lỗi xảy ra trước khi thực thi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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?
- Ngôn ngữ chính
- F#
- Star
- 406
- Fork
- 74
- Merge trung bình
- 1 ngày 8 giờ
- Pull request đã merge (30 ngày)
- 14
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của fsprojects/FSharp.Data.GraphQL
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
-
fsprojects/FSharp.Data.GraphQL#573 · 1 reaction · 2 người được giao ·
-
FR: Suave package Đang mở
fsprojects/FSharp.Data.GraphQL#566 · 1 bình luận · 1 reaction · 2 người được giao ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
Tất cả issue của fsprojects/FSharp.Data.GraphQL
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
speaches-ai/speaches#678 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
[BUG] ECR GetAuthorizationToken returns a proxyEndpoint for the default region, not the request's Đang mởbug ecr
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
conda-forge/spacy-feedstock#177 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100