Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Using a reference in items of array results in error

Aperta
#464 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

@joschi ci sta già lavorando.

Dal 26/2/2023.

  • #470 di @joschi — aperta

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
20/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
java
Ambito
api

Direzione di ricerca

Inizia con l'example.zip allegato e riproduci il comando CLI; poi leggi RefPointer.java, in particolare getRefName e resolveRef, insieme al percorso delle chiamate di SchemaDiff e DeferredSchemaCache indicato nel trace. Il lavoro è completo quando il $ref al file fratello dell'elemento dell'array viene risolto senza l'eccezione Invalid ref e il confronto viene completato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

duplicate

When a reference is used in items: of an array, e.g. :

type: object
description: Model for response from call to GET products requiring an array of products to be returned.
title: GetProductResponse
properties:
  Products:
    type: array
    items:
      $ref: Product.yaml

and error is thrown while resolving the references:

$ java -jar openapi-diff-cli-2.1.0-beta.4-all.jar --error --fail-on-incompatible source/specification/openapi.yaml destination/specification/openapi.yaml
Unexpected exception. Reason: Invalid ref: ./common/models/Product.yaml
java.lang.IllegalArgumentException: Invalid ref: ./common/models/Product.yaml
        at org.openapitools.openapidiff.core.utils.RefPointer.getRefName(RefPointer.java:60)
        at org.openapitools.openapidiff.core.utils.RefPointer.resolveRef(RefPointer.java:16)
        at org.openapitools.openapidiff.core.compare.SchemaDiff.computeDiffForReal(SchemaDiff.java:337)
        at org.openapitools.openapidiff.core.model.deferred.DeferredSchemaCache.processSchemaQueue(DeferredSchemaCache.java:86)
        at org.openapitools.openapidiff.core.model.deferred.DeferredSchemaCache.process(DeferredSchemaCache.java:64)
        at org.openapitools.openapidiff.core.compare.OpenApiDiff.compare(OpenApiDiff.java:100)
        at org.openapitools.openapidiff.core.compare.OpenApiDiff.compare(OpenApiDiff.java:64)
        at org.openapitools.openapidiff.core.OpenApiCompare.fromSpecifications(OpenApiCompare.java:102)
        at org.openapitools.openapidiff.core.OpenApiCompare.fromLocations(OpenApiCompare.java:91)
        at org.openapitools.openapidiff.cli.Main.main(Main.java:175)

Files GetProductResponse.yaml and Product.yaml both reside in the same directory.

Attachment contains the source and destination folders, which contain a copy of the same openapi spec.
example.zip

Lingua principale
Java
Stelle
1.1k
Fork
190
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di OpenAPITools/openapi-diff

Tutte le issue di OpenAPITools/openapi-diff

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.