[JavaJaxRS] Vendor Extensions Not Accessed in model.mustache
まだ誰も着手していません。
評価
調査の方向性
jaxrs-cxf templates から始め、特に licenseInfo.mustache、model.mustache、pojo.mustache に注目し、それらのレンダリングコンテキストを api.mustache および apiServiceImpl.mustache と比較してください。提供された OpenAPI YAML と swagger-codegen-cli-3.0.24 を使用して問題を再現してください。生成された model ファイルと POJO ファイルで、API ファイルと同様に、含まれている licenseInfo template から x-year がレンダリングされれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Description
When I update the licenseInfo.mustache template to reference vendor extensions and nest it in other templates, it works fine in files such as api.mustache, api_test.mustache, and apiServiceImpl.mustache. It does not output the value in model.mustache or pojo.mustache. Referencing included template variables (such as infoName) works fine.
Swagger-codegen version
swagger-codegen-cli-3.0.24 (cannot use latest at the moment due to Java version)
Swagger declaration file content or url
Unfortunately I cannot paste all of the code in here, but I can at least show how things are referenced/declared:
Folder structure:
swagger
/gen
/codegen
swagger-codegen-cli-3.0.24.jar
/templates
/jaxrs-cxf
<contents of JavaJaxRS folder from JAR file>
/output
/api
openapi: 3.0.1
x-year: 2025
info:
name: Your Name
paths:
Declaration in licenseInfo.mustache:
{{vendorExtensions.x-year}}
Use of licenseInfo.mustache in model.mustache and api.mustache
{{>licenseInfo}}
config-api.json
{
"hideGenerationTimestamp": true,
"java8": true,
"dateLibrary": "java8",
"useSwaggerFeature": true,
"modelPackage": "some.package.name",
"apiPackage": "some.package.name",
"invokerPackage": "some.package.name",
"useOas2": false,
"ignoreImportMappings": false,
"importMappings": {
"Set": "java.util.Set"
},
"addConsumesProducesJson": true
}
Command line used for generation
java -jar ./gen/codegen/swagger-codegen-cli-3.0.24.jar generate -D useGenericResponse=true -i swagger.yaml -t gen/templates/jaxrs-cxf -l jaxrs-cxf -o output/api -c config-api.json
Steps to reproduce
- Setup directory as shown above.
- Using any yaml file with a defined model, add the x-year property at the root level. Also, to show that included variables work fine, ensure to include info -> name in the yaml.
- Update the licenseInfo template directly under jaxrs-cxf folder to the above reference, using the template variable (name) and the vendor extension (x-year).
- Import licenseInfo to model.mustache and api.mustache per the above reference.
- cd into the swagger folder and run the JAR from there.
- When you open the API file(s), you will see that the licenseInfo text is there, with the year and name.
- When you open the model file, you will notice that the licenseInfo text is there, with the name, but minus the year. So, I think the import is working, but perhaps there's a vendor extension scoping issue somewhere?
Related issues/PRs
I didn't find anything similar.
Suggest a fix/enhancement
Fix the issue.
- 主要言語
- Mustache
- スター
- 17.8k
- フォーク
- 6k
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
swagger-api/swagger-codegen のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
swagger-api/swagger-codegen#12755 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
swagger-api/swagger-codegen#12445 ·
-
security vulnerability
難易度 1/5 1時間未満 初心者へのやさしさ 62/100
swagger-api/swagger-codegen#11942 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
swagger-api/swagger-codegen#11812 · リアクション 1 件 ·
-
security vulnerability
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
swagger-api/swagger-codegen#11594 ·
swagger-api/swagger-codegen の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
external-issue to-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
googleapis/google-cloud-swift#1151 ·
-
external
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
langchain-ai/langgraph#9074 · コメント 1 件 ·
-
documentation specification
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
openai/openai-openapi#584 ·