Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Potential bug when using wildcard in API filter functionality

Offen
#65 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
25/100
Issue-Typ
Bug
Klarheit
Muss geklärt werden
Aktivitätsstatus
Veraltet
Tech-Stack
julia
Bereich
api, tooling

Rechercherichtung

Beginne mit dem Lesen von OpenAPI/src/json.jl und der generierten model_WellOrInaccessibleResource.jl beim gemeldeten property_type-Aufruf und verfolge anschließend, wie die Plate-Antwort in OpenAPI/src/client.jl deserialisiert wird. Reproduziere die Wildcard-Antwort, wenn möglich; abgeschlossen bedeutet, dass eine Antwort mit returning="wells.*.webURL" nicht mehr aufgrund eines fehlenden resourceType-Schlüssels fehlschlägt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

stale

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.
Vorherrschende Sprache
Julia
Sterne
56
Forks
16
Ø Merge
20 Std. 1 Min.
Gemergte PRs (30 T.)
14

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus JuliaComputing/OpenAPI.jl

Alle Issues in JuliaComputing/OpenAPI.jl

Ähnliche Issues

Weitere Issues zu Julia

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.