fix: filter non- HTTP path-item keys in aefProfiles building

Description in #19

Fix:

Filter path-item keys to the set of supported HTTP methods (get, put, post, delete, options, head, patch, trace) before building resources, skipping any non-operation fields.

Files changed:

api_schema_translator.py

Testing

Translated successfully an OpenAPI spec file in yaml format, containing non-operation fields.

Merge request reports

Loading
+3 −0
Changes for opencapif_sdk/api_schema_translator.py: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -164,10 +164,13 @@ class api_schema_translator:
    def __build_aef_profiles(self, ip, port, api_version, fqdn=None, ipv6Addr=None, ):
        """Builds the aefProfiles section based on the paths and components in the API info."""
        aef_profiles = []
        http_methods = {"get", "put", "post", "delete", "options", "head", "patch", "trace"}

        resources = []
        for path, methods in self.api_info.get("paths", {}).items():
            for method, details in methods.items():
                if method.lower() not in http_methods:
                    continue
                resource = {
                    "resourceName": details.get("summary", "Unnamed Resource"),
                    "commType": "REQUEST_RESPONSE",
+1 −1
Changes for samples/capif_api_security_context_details_sample.json: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -1050,5 +1050,5 @@
      ]
    }
  ],
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTcyOTc1ODUwNiwianRpIjoiY2FiNTNlMDMtNDI1Yy00MTA2LTkzNmYtZDE0ZGRjNjgyNjMyIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6IklOVjc0ZWZmOWU4NjNhMWIwMzQ0YmJlNmUxNTU3ZjQwYSIsIm5iZiI6MTcyOTc1ODUwNiwiZXhwIjoxNzI5NzU5MTA2LCJpc3MiOiJJTlY3NGVmZjllODYzYTFiMDM0NGJiZTZlMTU1N2Y0MGEiLCJzY29wZSI6IjNncHAjQUVGNzJlN2Y5NDRhMjBmZTA3MmU5ZGIyNjM1MzNiNjQ2OlRlc3Q2NjtBRUY1NjA4YjYwNmFiMDhjZmQ3MTExMDE4ZTM5MzY2NjY6VGVzdDc3O0FFRmQ4MzZlOWI0OTE2MTY3M2UzZWU2NjMyYzQwOTUyMDpEZXBsb3ltZW50O0FFRjQ2MTBjNjNmY2I5NDA1MmViODg0N2FiZDJjNWVkNzpEZXBsb3ltZW50MTtBRUY0Y2EyY2ZiOTcwMGY5MTdiOGNjZTEzNjg1OTljNjA6a3M4NTAwX2dhdGV3YXlfZGV2ZWxvcG1lbnQ7QUVGZjk5MTExNjZkYWRkNzJkOWYyMzA1ZTkxMjE3NzZkOlRlc3QtMjtBRUY4NWJlZjA1YjMwYjFlOWQzMmM1YjdjYjZlYzdkMDA6VGVzdC0yO0FFRmM2OGJiMDkwNTQ2ZGZjMTFkMzk4NmFkYmNjYmIxMjpUZXN0LTI7QUVGYTEwMGIxYTc2Y2UwYTVlODQ5NWM2ZWJmNDNiZjRjOmRlbW9fYXBpX09DRjtBRUY5NDE1YTkxNzFkODFkZWQyYjMwZGMwNjBhMjg4YjU6c3MtZ207QUVGOTQxNWE5MTcxZDgxZGVkMmIzMGRjMDYwYTI4OGI1OnNzLWxhaXI7QUVGYmEyM2I3MWE4ZTM2NjVhNTk2YTM3YWVlYTA5OTVmOjVHLU5ldHdvcmstQXBwO0FFRjA5NTg1NjRlOTMxMmUyMDExM2FhOTU4YWZlOGU5MTo1Ry1OZXR3b3JrLUFwcDtBRUY0MmMwZTUwYmUzZDUxN2E0N2NhOWE5NDdlYjYxYzU6NUctTmV0d29yay1BcHA7QUVGMDJlZGQyNzU1MzVmMDAyZjlhOGFjM2YxNzI4YTE5OjVHLUFwcC1OZXR3b3JrO0FFRjY5OGNjMWY0MWQ0MWVlNzAwYmQxMjk0ZDBkNGU2Mzo1Ry1BcHAtTmV0d29yaztBRUY1YTcxODBiYzhlNTE5MWZlYTBkNTRhN2U5NjI4MmI6NUctQXBwLU5ldHdvcms7QUVGM2MwMGZlYzAwY2UyZTk0ZGY4ZTIyNzIxMGEzM2QzOjZHLXJlc2lsaWVuY2U7QUVGMjhhNjAzMTIwYzc0M2U4ZDYxNWE1NWMxNDM0MDBjOjZHLXJlc2lsaWVuY2U7QUVGM2MwMGZlYzAwY2UyZTk0ZGY4ZTIyNzIxMGEzM2QzOjVHLU5ldHdvcmstQXBwLUZ1bmN0aW9uO0FFRjI4YTYwMzEyMGM3NDNlOGQ2MTVhNTVjMTQzNDAwYzo1Ry1OZXR3b3JrLUFwcC1GdW5jdGlvbjtBRUZjOWRlNDg1ODcwNDY1Y2VmZDNjYTkxYjljZWUwMmI6NUctTmV0d29yay1BcHAtRnVuY3Rpb24ifQ.F_fMx35rbOlf1je4UVoA4dvyJwaSuAWEboGPNY_ziDtNe6PF1c0VO3_I0Z_V9QQFHSMhOYjwcCK3m9eD0rsIY15Qlw9ER2OLhCoVDQlPZvrRorI7bOnt0Xf2rtQK-NNVR_91VwlBI7h86_cw2M7xqV7IKxYlAl9j49GzNzJtJSNzlW-JrJ_SdHgkPd9_Vbpv0_Nr4-CBKyn9gmZAvmWwA8g_vPoAFKIMQg00R5maQCfflqnvxF_yRDl3eZbO7o9Lrds-E-lFRuYEWHNl7ShhLmuHfcp9Xz7pLqWVlHbdHDJDcbQ4i1sKpLan7eXSM0oT6JdaMuzBrRA3tPPMfzb0Tw"
  "access_token": ""
}
 No newline at end of file
Loading