[15:03:48] OpenAPI: http://localhost:8080/openapi.json [15:03:48] ✔ OpenAPI fetched (32448 bytes) [15:03:48] Analyze path‑parameters in schema… [15:03:48] ✖ Найдены операции без объявленных path‑параметров: 19 [ { "path": "/auth/v1/users/{user_id}", "method": "get", "needed": [ [ "user_id" ] ], "defined": [ "user_id" ], "missing": [ [ "user_id" ] ], "opId": "get_user_v1_users__user_id__get", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/auth/v1/users/{user_id}", "method": "delete", "needed": [ [ "user_id" ] ], "defined": [ "user_id" ], "missing": [ [ "user_id" ] ], "opId": "delete_user_v1_users__user_id__delete", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/auth/v1/users/{user_id}", "method": "patch", "needed": [ [ "user_id" ] ], "defined": [ "user_id" ], "missing": [ [ "user_id" ] ], "opId": "update_user_v1_users__user_id__patch", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/profiles/v1/profiles/{profile_id}", "method": "get", "needed": [ [ "profile_id" ] ], "defined": [ "profile_id" ], "missing": [ [ "profile_id" ] ], "opId": "get_profile_v1_profiles__profile_id__get", "security": [ { "HTTPBearer": [] } ] }, { "path": "/profiles/v1/profiles/by-user/{user_id}", "method": "get", "needed": [ [ "user_id" ] ], "defined": [ "user_id" ], "missing": [ [ "user_id" ] ], "opId": "get_by_user_v1_profiles_by_user__user_id__get", "security": [ { "HTTPBearer": [] } ] }, { "path": "/profiles/v1/likes/{target_user_id}", "method": "put", "needed": [ [ "target_user_id" ] ], "defined": [ "target_user_id" ], "missing": [ [ "target_user_id" ] ], "opId": "put_like_v1_likes__target_user_id__put", "security": [ { "HTTPBearer": [] } ] }, { "path": "/profiles/v1/likes/{target_user_id}", "method": "delete", "needed": [ [ "target_user_id" ] ], "defined": [ "target_user_id" ], "missing": [ [ "target_user_id" ] ], "opId": "delete_like_v1_likes__target_user_id__delete", "security": [ { "HTTPBearer": [] } ] }, { "path": "/match/v1/pairs/{pair_id}", "method": "get", "needed": [ [ "pair_id" ] ], "defined": [ "pair_id" ], "missing": [ [ "pair_id" ] ], "opId": "get_pair_v1_pairs__pair_id__get", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/match/v1/pairs/{pair_id}", "method": "delete", "needed": [ [ "pair_id" ] ], "defined": [ "pair_id" ], "missing": [ [ "pair_id" ] ], "opId": "delete_pair_v1_pairs__pair_id__delete", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/match/v1/pairs/{pair_id}", "method": "patch", "needed": [ [ "pair_id" ] ], "defined": [ "pair_id" ], "missing": [ [ "pair_id" ] ], "opId": "update_pair_v1_pairs__pair_id__patch", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/match/v1/pairs/{pair_id}/accept", "method": "post", "needed": [ [ "pair_id" ] ], "defined": [ "pair_id" ], "missing": [ [ "pair_id" ] ], "opId": "accept_v1_pairs__pair_id__accept_post", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/match/v1/pairs/{pair_id}/reject", "method": "post", "needed": [ [ "pair_id" ] ], "defined": [ "pair_id" ], "missing": [ [ "pair_id" ] ], "opId": "reject_v1_pairs__pair_id__reject_post", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/chat/v1/rooms/{room_id}", "method": "get", "needed": [ [ "room_id" ] ], "defined": [ "room_id" ], "missing": [ [ "room_id" ] ], "opId": "get_room_v1_rooms__room_id__get", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/chat/v1/rooms/{room_id}/messages", "method": "get", "needed": [ [ "room_id" ] ], "defined": [ "room_id" ], "missing": [ [ "room_id" ] ], "opId": "list_messages_v1_rooms__room_id__messages_get", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/chat/v1/rooms/{room_id}/messages", "method": "post", "needed": [ [ "room_id" ] ], "defined": [ "room_id" ], "missing": [ [ "room_id" ] ], "opId": "send_message_v1_rooms__room_id__messages_post", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/payments/v1/invoices/{inv_id}", "method": "get", "needed": [ [ "inv_id" ] ], "defined": [ "inv_id" ], "missing": [ [ "inv_id" ] ], "opId": "get_invoice_v1_invoices__inv_id__get", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/payments/v1/invoices/{inv_id}", "method": "delete", "needed": [ [ "inv_id" ] ], "defined": [ "inv_id" ], "missing": [ [ "inv_id" ] ], "opId": "delete_invoice_v1_invoices__inv_id__delete", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/payments/v1/invoices/{inv_id}", "method": "patch", "needed": [ [ "inv_id" ] ], "defined": [ "inv_id" ], "missing": [ [ "inv_id" ] ], "opId": "update_invoice_v1_invoices__inv_id__patch", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/payments/v1/invoices/{inv_id}/mark-paid", "method": "post", "needed": [ [ "inv_id" ] ], "defined": [ "inv_id" ], "missing": [ [ "inv_id" ] ], "opId": "mark_paid_v1_invoices__inv_id__mark_paid_post", "security": [ { "OAuth2PasswordBearer": [] } ] } ] [15:03:48] Report: logs/audit_20250810_150348.json [15:03:48] Log: logs/audit_20250810_150348.log