99designs / 99designs/gqlgen

Nil `Operation` field in the Operation Context

Đang mở
#2,542 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Go
Star
10.8k
Fork
1.3k
Merge trung bình
2 ngày 36 phút
Pull request đã merge (30 ngày)
26

Mô tả

### What happened?

I am using the `oc := graphql.GetOperationContext(ctx)` in a middleware in `AroundResponses` function. The `oc.Operation` field is nil when there are some validation errors.

Error details:
- Rule: `NoUnusedFragments`
- Extensions.Code: `GRAPHQL_VALIDATION_FAILED`
- Message: `Fragment \"...\" is never used.`

### What did you expect?

I expect the `Operation` filed to not be nil.

### Minimal graphql.schema and models to reproduce

### versions
- `go run github.com/99designs/gqlgen version`? gqlgen v0.17.24
- `go version`? Go 1.19

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Hãy xem xét cách xử lý middleware trong codebase của gqlgen, đặc biệt là hook AroundResponses và OperationContext. Vấn đề là oc.Operation có giá trị nil khi xảy ra các lỗi validation như NoUnusedFragments. Trước tiên, hãy kiểm tra cách các lỗi validation được thiết lập và thời điểm trường Operation được điền. Kiểm tra package graphql để tìm GetOperationContext và luồng validation. Việc chạy các test hiện có liên quan đến middleware và validation sẽ giúp xác minh fix.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
go, graphql
Lĩnh vực
api, backend
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
45/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.