OpenAPITools / OpenAPITools/openapi-generator
[BUG][JAVASCRIPT] constructFromObject redundantly re-initializes fields belonging to the parent
Nessuno ha ancora preso questa issue.
- Lingua principale
- Java
- Stelle
- 26.8k
- Fork
- 7.7k
- Metriche di merge delle PR
- Metriche PR in attesa
Descrizione
Description
In MyObject.js :
static constructFromObject(data, obj) {
if (data) {
obj = obj || new MyModel();
BaseModel.constructFromObject(data, obj);
if (data.hasOwnProperty('myProperty')) {
obj['myProperty'] = ApiClient.convertToType(data['myProperty'], 'String');
}
if (data.hasOwnProperty('baseProprty')) {
obj['baseProprty'] = ApiClient.convertToType(data['baseProprty'], 'String');
}
}
return obj;
}
In BaseObject.js :
static constructFromObject(data, obj) {
if (data) {
obj = obj || new BaseModel();
if (data.hasOwnProperty('baseProperty')) {
obj['baseProperty'] = ApiClient.convertToType(data['baseProperty'], 'String');
}
}
return obj;
}
baseProperty is initialized from the call to BaseModel.constructFromObject and then initialized again after the properties unique to the derived object.
openapi-generator version
7.2.0
OpenAPI declaration file content or url
components:
schemas:
BaseModel:
type: object
properties:
baseProperty:
type: string
MyModel:
allOf:
- $ref: "#/components/schemas/BaseModel"
type: object
properties:
myProperty:
type: string
Generation Details
I used the Gradle plugin with the "javascript" generatorName
Steps to reproduce
Define a schema using allOf (without discriminators) and generate JavaScript models.
Guida per i contributori
Apri la guida per i contributori
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.
Direzione di ricerca
Inizia con gli esempi generati MyObject.js e BaseObject.js e riproduci il problema utilizzando lo schema allOf fornito con il generatore JavaScript e il plugin Gradle. Traccia il modo in cui constructFromObject gestisce le proprietà ereditate, quindi rigenera i modelli per verificare che i campi della classe padre non vengano più inizializzati in modo ridondante.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- javascript
- Ambito
- tooling
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100