Migrate to networknt json-schema-validator 3.x (Jackson 3 API)
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 45/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- java
- Lĩnh vực
- api, backend-api-design
Hướng nghiên cứu
Bắt đầu từ các lệnh gọi SchemaRegistry.getSchema(JsonNode) và Schema.validate(JsonNode), sau đó lần theo pipeline transformer và các Format validator tùy chỉnh. So sánh các điểm vào của InputFormat.JSON với việc phân tách dialect 3.0/3.1 và cố định Jackson 3 BOM. Hoàn tất có nghĩa là thư viện build được với networknt 3.x, API com.atlassian.oai.validator.* vẫn không thay đổi và hành vi của các số nằm ngoài phạm vi được xác nhận.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
networknt json-schema-validator 3.x moved its public API from Jackson 2 (com.fasterxml.jackson.databind) to Jackson 3 (tools.jackson.databind) and removed the Jackson-2 node overloads (SchemaRegistry.getSchema(JsonNode), Schema.validate(JsonNode)). This library builds against 2.0.1 and calls those overloads, so any consumer that puts networknt 3.x on the classpath gets a NoSuchMethodError when the first schema is compiled.
A property bump alone won't do it: swagger-parser produces Jackson 2 nodes while networknt 3.x consumes Jackson 3, so there's a boundary to bridge — without touching the com.atlassian.oai.validator.* public API.
Proposed approach:
- Feed networknt JSON text through its
InputFormat.JSONentry points instead of Jackson-2 nodes, leaving the transformer pipeline and the 3.0/3.1 dialect split intact. - Move the custom
Formatvalidators to Jackson 3 nodes (networknt'sFormat.matches(...)now hands them in). - Pin the Jackson 3 BOM to match what networknt depends on.
One behavior change worth confirming: a value beyond Double.MAX_VALUE is now rejected by networknt as a type error ("number expected") rather than reaching the custom double-format validator — still rejected, different error key.
Questions before I open a PR:
- Prefer the
InputFormat.JSONtext boundary, or converting nodes to Jackson 3? - Is the
format.double→typechange on out-of-range values acceptable?
Raising here first per CONTRIBUTING; I'll sign the Atlassian CLA before submitting.
- Ngôn ngữ chính
- Java
- Star
- 17
- Fork
- 6
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
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 atlassian/openapi-request-validator
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 64/100
-
Make the Locale configurableĐang mở
Độ khó 3/5 Nửa ngày Mức phù hợp với người mới 55/100
-
openapi-request-validator-core:3.0.0 - NoSuchMethodError: SchemaRegistry.getSchema(JsonNode)Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 62/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
Tất cả issue của atlassian/openapi-request-validator
Issue tương tự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 75/100
521xueweihan/HelloGitHub#4105 ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 1 ngày
-
code-maintenance
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
krizaka/krizaka-notifications#32 ·
Maintainer thường phản hồi trong vòng 1 ngày