OpenAPITools / OpenAPITools/openapi-generator
[BUG][JAVASCRIPT] constructFromObject redundantly re-initializes fields belonging to the parent
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Java
- Sterne
- 26.8k
- Forks
- 7.7k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
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.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit den generierten Beispielen MyObject.js und BaseObject.js und reproduziere das Problem anhand des bereitgestellten allOf-Schemas mit dem JavaScript-Generator und dem Gradle-Plugin. Verfolge, wie constructFromObject geerbte Eigenschaften verarbeitet, und generiere die Modelle anschließend erneut, um zu überprüfen, dass die Felder der übergeordneten Klasse nicht mehr redundant initialisiert werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100