fix duplicate API definition output

This commit is contained in:
debugtalk
2019-01-25 12:18:07 +08:00
parent 7d94fdfb14
commit 646dccea96

View File

@@ -613,17 +613,23 @@ def load_api_folder(api_folder_path):
if isinstance(api_items, list):
for api_item in api_items:
key, api_dict = api_item.popitem()
api_id = api_dict.get("id")
if api_id in api_definition_mapping:
logger.log_warning("API definition duplicated: {}".format(api_id))
api_id = api_dict.get("id") or api_dict.get("def") or api_dict.get("name")
if key != "api" or not 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):
if api_file_path in api_definition_mapping:
logger.log_warning("API definition duplicated: {}".format(api_file_path))
api_definition_mapping[api_file_path] = api_items
raise exceptions.ParamsError(
"Duplicated API defined: {}".format(api_file_path))
else:
api_definition_mapping[api_file_path] = api_items
return api_definition_mapping