Open uniqueg opened 4 years ago
The client is potentially very useful in our web portal CWLab. It's already used there (in v0.3.1
to retrieve workflow files if a "versioned TRS URI" is passed. But the TRS also offers a discovery endpoint (GET /tools
with appropriate query parameters). To support the functionality of discovering a workflow that you don't know exists, implementing access methods for GET /tools
, and then GET /tool/{id}
, GET /tool/{id}/versions
, and GET /tools/{id}/versions/{version_id}
to allow the user to pick a version of a tool they have just discovered, are probably highest priority (pretty much in that order).
Afterwards, probably the POST
, PUT
and DELETE
endpoints to manage resources available on the service (i.e., POST /tools
and POST /tools/{id}/versions
etc) are probably the next most important set of access methods.
This is a meta-issue to help keep track on what access methods are still left to implement. Please don't close this issue until all boxes are checked (note that additional boxes may be added later).
To implement one of the methods, open a specific issue for the access method you would like to implement (if it doesn't already exist), assign yourself to that issue, implement it (look at #5, #6 and #7 for examples), implement tests, update the
README.md
, file a PR and mention the specific issue in the PR description. Then, once done, tick off the corresponding item in the lists below.TRS access methods to implement:
.get_service_info()
forGET /service-info
(#38 / #40).get_tool_classes()
forGET /toolClasses
(#11).get_tools()
forGET /tools
(#15 / #16).get_tool()
forGET /tools/{id}
(#12).get_versions()
forGET /tools/{id}/versions
(#17 / #19).get_version()
forGET /tools/{id}/versions/{version_id}
(#18 / #20).get_containerfiles()
forGET /tools/{id}/versions/{version_id}/containerfile
(#41 / #43).get_descriptor()
forGET /tools/{id}/versions/{version_id}/{type}/descriptor
(#5).get_descriptor_by_path()
forGET /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}
(#7).get_files()
forGET /tools/{id}/versions/{version_id}/{type}/files
(#6).get_tests()
forGET /tools/{id}/versions/{version_id}/{type}/tests
(#42 / 44)TRS-Filer access methods to implement:
.post_service_info()
forPOST /service-info
(#37 / #39).post_tool_class()
forPOST /toolClasses
(#12).delete_tool_class()
forDELETE /toolClasses/{id}
(#25 / #27).put_tool_class()
forPUT /toolClasses/{id}
(#31 / #34).post_tool()
forPOST /tools
(#21 / #23).delete_tool()
forDELETE /tools/{id}
(#26 / #29).put_tool()
forPUT /tools/{id}
(#32 / #35).post_version()
forPOST /tools/{id}/versions
(#22 / #24).delete_version()
forDELETE /tools/{id}/versions/{version_id}
(#28 / #30).put_version()
forPUT /tools/{id}/versions/{version_id}
(#33 / #36)Composite access methods to implement: