fix duplicate API definition output

This commit is contained in:
debugtalk
2019-01-25 12:18:07 +08:00
parent 7beedf378a
commit c17875c82c
+13 -7
View File
@@ -613,17 +613,23 @@ def load_api_folder(api_folder_path):
if isinstance(api_items, list): if isinstance(api_items, list):
for api_item in api_items: for api_item in api_items:
key, api_dict = api_item.popitem() key, api_dict = api_item.popitem()
api_id = api_dict.get("id") api_id = api_dict.get("id") or api_dict.get("def") or api_dict.get("name")
if api_id in api_definition_mapping: if key != "api" or not api_id:
logger.log_warning("API definition duplicated: {}".format(api_id)) raise exceptions.ParamsError(
"Invalid API defined in {}".format(api_file_path))
api_definition_mapping[api_id] = api_dict if api_id in api_definition_mapping:
raise exceptions.ParamsError(
"Duplicated API ({}) defined in {}".format(api_id, api_file_path))
else:
api_definition_mapping[api_id] = api_dict
elif isinstance(api_items, dict): elif isinstance(api_items, dict):
if api_file_path in api_definition_mapping: if api_file_path in api_definition_mapping:
logger.log_warning("API definition duplicated: {}".format(api_file_path)) raise exceptions.ParamsError(
"Duplicated API defined: {}".format(api_file_path))
api_definition_mapping[api_file_path] = api_items else:
api_definition_mapping[api_file_path] = api_items
return api_definition_mapping return api_definition_mapping