How to build a registry from a simple OpenAPI document dict?
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 25/100
Direzione di ricerca
Inizia con l’esempio di Registry().with_resources, Resource.from_contents e Draft202012Validator(registry=registry, schema=schema) nell’issue. Confronta le voci components/schemas di OpenAPI con la ricerca tramite JSON Pointer che fallisce e consulta la documentazione di referencing sulla costruzione del registro. Il lavoro è completato quando il dizionario OpenAPI può essere registrato e la validazione non solleva più il KeyError mostrato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I'm trying to build a registry
self.registry = Registry().with_resources(
(f"#/components/schemas/{k}", Resource.from_contents(v, referencing.jsonschema.DRAFT202012)
for k, v in openapi["components"]["schemas"].items()
)
but then it fails during validation
jsonschema.Draft202012Validator(registry=registry, schema=schema).validate(dict)
with
self = Resource(contents={'oneOf': [{'type': 'object', 'properties': {'status': {'enum': [200]}, 'headers': {'type': 'object'...['mime', 'body']}]}}, 'required': ['status', 'headers', 'body']}]}, _specification=<Specification name='draft2020-12'>)
pointer = '/components/schemas/YtDlInfo'
resolver = Resolver(_base_uri='', _registry=<Registry (25 resources, 5 uncrawled)>)
def pointer(self, pointer: str, resolver: Resolver[D]) -> Resolved[D]:
"""
Resolve the given JSON pointer.
Raises:
`exceptions.PointerToNowhere`
if the pointer points to a location not present in the document
"""
if not pointer:
return Resolved(contents=self.contents, resolver=resolver)
contents = self.contents
segments: list[int | str] = []
for segment in unquote(pointer[1:]).split("/"):
if isinstance(contents, Sequence):
segment = int(segment)
else:
segment = segment.replace("~1", "/").replace("~0", "~")
try:
> contents = contents[segment] # type: ignore[reportUnknownArgumentType]
E KeyError: 'components'
how do I correctly build a registry from an OpenAPI dict? Docs don't mention this
Thanks
- Lingua principale
- Python
- Stelle
- 53
- Fork
- 27
- Merge medio
- 1g 8h
- PR unite (30g)
- 8
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di python-jsonschema/referencing
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
python-jsonschema/referencing#366 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
python-jsonschema/referencing#257 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
python-jsonschema/referencing#226 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
python-jsonschema/referencing#178 · 6 commenti ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
python-jsonschema/referencing#119 · 4 commenti ·
Tutte le issue di python-jsonschema/referencing
Issue simili
-
bug confirmed issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
open-webui/open-webui#30750 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
OpenwaterHealth/openmotion-bloodflow-app#604 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
good first issue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100