Using a reference in items of array results in error
評価
調査の方向性
添付された example.zip から始めて CLI コマンドを再現し、その後、特に getRefName と resolveRef を中心に RefPointer.java を読み、trace に記載された SchemaDiff と DeferredSchemaCache の呼び出しパスも確認します。配列項目の兄弟ファイルへの $ref が Invalid ref 例外なしに解決され、比較が完了すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
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
- 主要言語
- Java
- スター
- 1.1k
- フォーク
- 190
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
OpenAPITools/openapi-diff のほかの issue
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
OpenAPITools/openapi-diff#506 ·
-
good first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
OpenAPITools/openapi-diff#364 ·
-
bug OpenAP 3.1.0 Support
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
OpenAPITools/openapi-diff#910 · コメント 1 件 ·
-
Render capabilities
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
OpenAPITools/openapi-diff#893 · コメント 1 件 ·
-
Breaking/Non-Breaking classification
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
OpenAPITools/openapi-diff#886 ·
OpenAPITools/openapi-diff の issue をすべて見る
似ている issue
-
awaiting triage bug Causes friction Hop Gui P1 P2 Transforms
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
apache/flink-agents#1152 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
jenkinsci/blueocean-plugin#5417 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
objectionary/eo-graphs#75 ·