Skip to content

Refactor api.py into sub-modules #189

@JR-1991

Description

@JR-1991

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.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions