Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

enum and properties change in schemas not reported in .md file generated after diff check

Đang mở
#523 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
42/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
java
Lĩnh vực
api

Hướng nghiên cứu

Tái hiện vấn đề bằng các đặc tả JSON OpenAPI cũ và mới được cung cấp, rồi so sánh diff Markdown được tạo ra. Theo dõi đường đi của diff và quá trình reporting bằng Markdown đối với các schema thành phần được tái sử dụng và các thuộc tính lồng nhau. Công việc được xem là hoàn tất khi mọi thay đổi enum và thuộc tính áp dụng được đều xuất hiện trong báo cáo cho từng lệnh gọi REST bị ảnh hưởng.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Compared 2 API Specifications json. The Specification contains multiple component schemas. But if there is an Enum Array (same array) is present in different component schemas, then while publishing the diff for Rest Call only once the ENUM change is reported although multiple schema changes are applicable for that or other Rest Call with the same Enum Array list.

Similarly observed the same issue with properties change in Schema.

Sample for enum issue:

Old Spec:
{ "openapi": "3.0.1", "paths": { "/check/api/Id/Exp{ExpId}": { "get": { "responses": { "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExpRO" } } } } } } } }, "components": { "schemas": { "ExpRO": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ExpDataRO" } } }, "ExpDataRO": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": [ "tpeExpectations" ] }, "attributes": { "$ref": "#/components/schemas/ExpAttributesRO" } } }, "ExpAttributesRO": { "type": "object", "properties": { "Terminations": { "type": "array", "items": { "$ref": "#/components/schemas/TerminationRO" } } } }, "TerminationRO": { "type": "object", "properties": { "nniNetwork": { "$ref": "#/components/schemas/NetworkRO" }, "ponConnection": { "$ref": "#/components/schemas/PonConnectionRO" } } }, "NetworkRO": { "type": "object", "properties": { "tagAction": { "type": "string", "enum": [ "none", "pop", "push", "stamp" ] }, "floodingLink": { "type": "string", "enum": [ "enabled", "disabled" ] } } }, "PonConnectionRO": { "type": "object", "properties": { "tagAction": { "type": "string", "enum": [ "none", "pop", "push", "stamp" ] } } } } } }

New Spec:
{ "openapi": "3.0.1", "paths": { "/check/api/Id/Exp{ExpId}": { "get": { "responses": { "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExpRO" } } } } } } } }, "components": { "schemas": { "ExpRO": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ExpDataRO" } } }, "ExpDataRO": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": [ "tpeExpectations" ] }, "attributes": { "$ref": "#/components/schemas/ExpAttributesRO" } } }, "ExpAttributesRO": { "type": "object", "properties": { "Terminations": { "type": "array", "items": { "$ref": "#/components/schemas/TerminationRO" } } } }, "TerminationRO": { "type": "object", "properties": { "NetworkConnectionPackage": { "$ref": "#/components/schemas/NetworkConnectionRO" }, "ponConnectionPackage": { "$ref": "#/components/schemas/PonConnectionRO" }, "datalinkPackage": { "$ref": "#/components/schemas/DatalinkRO" } } }, "NetworkConnectionRO": { "type": "object", "properties": { "tagAction": { "type": "string", "enum": [ "none", "pop", "push", "stamp" ] }, "floodingLink": { "type": "string", "enum": [ "enabled", "disabled" ] } } }, "PonConnectionRO": { "type": "object", "properties": { "tagAction": { "type": "string", "enum": [ "none", "pop", "push", "stamp" ] } } }, "DatalinkRO": { "type": "object", "properties": { "adminState": { "type": "string", "enum": [ "enabled", "disabled" ] } } } } } }

Diff md file:

What's Changed

GET /check/api/Id/Exp{ExpId}
Return Type:

Changed response : **default **

  • Changed content type : application/json

    • Changed property data (object)

      • Changed property attributes (object)

        • Changed property Terminations (array)

          Changed items (object):

          • Added property NetworkConnectionPackage (object)

            • Property tagAction (string)

              Enum values:

              • none
              • pop
              • push
              • stamp
            • Property floodingLink (string)

              Enum values:

              • enabled
              • disabled
          • Added property ponConnectionPackage (object)

            • Property tagAction (string)
          • Added property datalinkPackage (object)

            • Property adminState (string)
          • Deleted property nniNetwork (object)

          • Deleted property ponConnection (object)

Enum change not reported for datalinkPackage -> adminState and ponConnectionPackage -> tagAction

Sample for properties issue:

Old Spec:
{ "openapi": "3.0.1", "paths": { "/check/API": { "get": { "responses": { "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExpAPIRO" } } } } } } } }, "components": { "schemas": { "ExpAPIRO": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ExpAPIDataRO" } } }, "ExpAPIDataRO": { "type": "object", "properties": { "relationships": { "$ref": "#/components/schemas/ExpAPIRelationshipsRO" } } }, "ExpAPIRelationshipsRO": { "type": "object", "properties": {} } } } }

New Spec:
{ "openapi": "3.0.1", "paths": { "/check/API": { "get": { "responses": { "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExpAPIRO" } } } } } } } }, "components": { "schemas": { "ExpAPIRO": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/ExpAPIDataRO" } } }, "ExpAPIDataRO": { "type": "object", "properties": { "relationships": { "$ref": "#/components/schemas/ExpAPIRelationshipsRO" } } }, "ExpAPIRelationshipsRO": { "type": "object", "properties": { "linkedTpes": { "$ref": "#/components/schemas/OneToManyRelationshipRO" }, "shelfNetworkConstruct": { "$ref": "#/components/schemas/OneToOneRelationshipRO" } } }, "OneToManyRelationshipRO": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/RelationshipDataRO" } }, "meta": { "$ref": "#/components/schemas/RelationshipMetaDataRO" } } }, "RelationshipDataRO": { "type": "object", "properties": { "type": { "type": "string" }, "id": { "type": "string" }, "attributes": { "$ref": "#/components/schemas/RelationshipAttributesRO" } } }, "RelationshipAttributesRO": { "type": "object", "properties": { "additionalAttributes": { "$ref": "#/components/schemas/AdditionalAttributesRO" } } }, "AdditionalAttributesRO": { "type": "object" }, "RelationshipMetaDataRO": { "type": "object", "properties": { "partiallyPopulated": { "type": "boolean" } } }, "OneToOneRelationshipRO": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/RelationshipDataRO" }, "meta": { "$ref": "#/components/schemas/RelationshipMetaDataRO" } } } } } }

Diff md file:

What's Changed

GET /check/API
Return Type:

Changed response : **default **

  • Changed content type : application/json

    • Changed property data (object)

      • Changed property relationships (object)

        • Added property linkedTpes (object)

          • Property data (array)

            Items (object):

            • Property type (string)

            • Property id (string)

            • Property attributes (object)

              • Property additionalAttributes (object)
          • Property meta (object)

            • Property partiallyPopulated (boolean)
        • Added property shelfNetworkConstruct (object)

          • Property data (object)

          • Property meta (object)

Property change in shelfNetworkConstruct-> meta and shelfNetworkConstruct-> data not reported in MD file.

Ngôn ngữ chính
Java
Star
1.1k
Fork
190
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của OpenAPITools/openapi-diff

Tất cả issue của OpenAPITools/openapi-diff

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.