The entire API is currently implemented in api.py, which consists of almost 3k lines. This makes maintenance, extension, and gaining a general overview difficult. It would be beneficial to separate the implementation of endpoints or groups of endpoints into individual files and then reference them in NativeApi/DataAccessApi.
I suggest grouping similar endpoints into modules to improve the user experience. Currently, all endpoints are accessible through the NativeApi interface, which means one must know if a certain function is related to a dataset, collection, and so on. This results in a naming problem as we rely on encoding this information into the function name. Making the API more intuitive would involve something like the following:
native_api = NativeApi(...)
# Get the version
native_api.info.version()
# Create a dataset
native_api.datasets.create()
By utilizing this approach, collaborative work is streamlined, enabling team members to independently focus on different components without the concern of conflicting changes or merge issues.
The entire API is currently implemented in
api.py
, which consists of almost 3k lines. This makes maintenance, extension, and gaining a general overview difficult. It would be beneficial to separate the implementation of endpoints or groups of endpoints into individual files and then reference them inNativeApi
/DataAccessApi
.I suggest grouping similar endpoints into modules to improve the user experience. Currently, all endpoints are accessible through the
NativeApi
interface, which means one must know if a certain function is related to a dataset, collection, and so on. This results in a naming problem as we rely on encoding this information into the function name. Making the API more intuitive would involve something like the following:By utilizing this approach, collaborative work is streamlined, enabling team members to independently focus on different components without the concern of conflicting changes or merge issues.