Potential bug when using wildcard in API filter functionality
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đá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
- 25/100
Hướng nghiên cứu
Bắt đầu bằng cách đọc OpenAPI/src/json.jl và model_WellOrInaccessibleResource.jl được tạo tại lệnh gọi property_type được báo cáo, sau đó theo dõi cách phản hồi Plate được giải tuần tự trong OpenAPI/src/client.jl. Nếu có thể, hãy tái hiện phản hồi wildcard; hoàn thành có nghĩa là phản hồi sử dụng returning="wells.*.webURL" không còn thất bại do thiếu khóa resourceType.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
I run into an error in the code generated by OpenAPI.jl. The API I'm trying to use accepts a "returning" input string (https://docs.benchling.com/docs/getting-started-1#returning-query-parameter) which is a comma separated list of (potentially nested) return values (e.g. "a.b.c"), which can be used to limit the returning payload. This keyword accepts a wildcard to return all values at that level, but when I use the wildcard I get an error.
I don't know where to start debugging this as the code is autogenerated by OpenAPI. Moreover, the API needs authentication so it is hard to cook up a reproducible example.
Here is the auto generated code https://github.com/jonalm/BenchlingRestApi.jl
And this line https://github.com/jonalm/BenchlingRestApi.jl/blob/0294435467c1d57124d2d85956d383839fc3dd21/codegen/src/models/model_WellOrInaccessibleResource.jl#L17 errors:
ERROR: KeyError: key "resourceType" not found
The following code triggers the error
api_return, http_resp = get_plate(
PlatesApi(client),
arrayspecsubplateid,
returning="wells.*.webURL" # should limit the payload
)
ERROR: KeyError: key "resourceType" not found
Stacktrace:
[1] getindex
@ ./dict.jl:498 [inlined]
[2] property_type(::Type{BioMe.Benchling.RestApi.WellOrInaccessibleResource}, name::Symbol, json::Dict{String, Any})
@ BioMe.Benchling.RestApi ~/dev/BioMe.jl/src/Benchling/RestApi/src/models/model_WellOrInaccessibleResource.jl:17
[3] from_json(o::BioMe.Benchling.RestApi.WellOrInaccessibleResource, name::Symbol, json::Dict{String, Any})
@ OpenAPI ~/.julia/packages/OpenAPI/p5UeR/src/json.jl:64
[4] from_json
@ OpenAPI ~/.julia/packages/OpenAPI/p5UeR/src/json.jl:46 [inlined]
[5] from_json
@ OpenAPI ~/.julia/packages/OpenAPI/p5UeR/src/json.jl:40 [inlined]
[6] convert
@ ~/.julia/packages/OpenAPI/p5UeR/src/client.jl:712 [inlined]
[7] setindex!(h::Dict{String, BioMe.Benchling.RestApi.WellOrInaccessibleResource}, v0::Dict{String, Any}, key::String)
@ Base ./dict.jl:376
[8] Dict{String, BioMe.Benchling.RestApi.WellOrInaccessibleResource}(kv::Dict{String, Any})
@ Base ./dict.jl:84
[9] convert
@ Base ./abstractdict.jl:568 [inlined]
[10] from_json
@ OpenAPI ~/.julia/packages/OpenAPI/p5UeR/src/json.jl:41 [inlined]
[11] from_json(::Type{Union{Nothing, Dict{…}}}, json::Dict{String, Any})
@ OpenAPI ~/.julia/packages/OpenAPI/p5UeR/src/json.jl:39
[12] from_json(o::BioMe.Benchling.RestApi.Plate, name::Symbol, json::Dict{String, Any})
@ OpenAPI ~/.julia/packages/OpenAPI/p5UeR/src/json.jl:65
[13] from_json(o::BioMe.Benchling.RestApi.Plate, json::Dict{String, Any})
@ OpenAPI ~/.julia/packages/OpenAPI/p5UeR/src/json.jl:58
[14] from_json(o::T, json::Dict{String, Any}) where T<:OpenAPI.APIModel
@ OpenAPI ~/.julia/packages/OpenAPI/p5UeR/src/json.jl:40 [inlined]
[15] response
@ ~/.julia/packages/OpenAPI/p5UeR/src/client.jl:422 [inlined]
[16] response(::Type{BioMe.Benchling.RestApi.Plate}, is_json::Bool, body::Vector{UInt8})
@ OpenAPI.Clients ~/.julia/packages/OpenAPI/p5UeR/src/client.jl:411
[17] response(::Type{BioMe.Benchling.RestApi.Plate}, resp::Downloads.Response, body::Vector{UInt8})
@ OpenAPI.Clients ~/.julia/packages/OpenAPI/p5UeR/src/client.jl:406
[18] exec(ctx::OpenAPI.Clients.Ctx, stream_to::Nothing)
@ OpenAPI.Clients ~/.julia/packages/OpenAPI/p5UeR/src/client.jl:628
[19] exec
@ OpenAPI.Clients ~/.julia/packages/OpenAPI/p5UeR/src/client.jl:608 [inlined]
[20] #get_plate#1549
@ BioMe.Benchling.RestApi ~/dev/BioMe.jl/src/Benchling/RestApi/src/apis/api_PlatesApi.jl:143 [inlined]
[21] top-level scope
@ ~/dev/BioMe.jl/scratch/scratch3.jl:77
Some type information was truncated. Use `show(err)` to see complete types.
- Ngôn ngữ chính
- Julia
- Star
- 56
- Fork
- 16
- Merge trung bình
- 1 ngày 51 phút
- Pull request đã merge (30 ngày)
- 12
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
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 JuliaComputing/OpenAPI.jl
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
JuliaComputing/OpenAPI.jl#128 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
JuliaComputing/OpenAPI.jl#118 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
JuliaComputing/OpenAPI.jl#117 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
JuliaComputing/OpenAPI.jl#113 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
stale
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 48/100
JuliaComputing/OpenAPI.jl#87 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của JuliaComputing/OpenAPI.jl
Issue tương tự
-
add-on doc enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
JuliaGraphics/ColorTypes.jl#344 · 1 bình luận ·
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
-
`enzymexla.linalg.lu` lowering fails for a tall matrix: the permutation is built with the pivot typeĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
EnzymeAD/Enzyme-JAX#3286 ·
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 90/100
SciML/LinearSolve.jl#1359 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
EnzymeAD/ReactantNitro.jl#13 ·