OpenAPITools / OpenAPITools/openapi-generator
[BUG][JAVASCRIPT] constructFromObject redundantly re-initializes fields belonging to the parent
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Java
- Star
- 26.8k
- Fork
- 7.7k
- Chỉ số merge pull request
- Chỉ số pull request đang chờ
Mô tả
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.
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với các ví dụ MyObject.js và BaseObject.js được tạo ra và tái hiện vấn đề bằng cách sử dụng schema allOf được cung cấp cùng với trình tạo JavaScript và plugin Gradle. Theo dõi cách constructFromObject xử lý các thuộc tính kế thừa, sau đó tạo lại các model để xác minh rằng các trường của lớp cha không còn được khởi tạo dư thừa.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript
- Lĩnh vực
- tooling
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100