Get a specific dataset from OD API using the name of it

Dear API experts,

I want to build a check in a Workflow that checks whether a certain data table already exists in OD based on the name of the data table. I found the /data/name call in the documentation but when I tried it I get this Internal Server error:

{"errors":["Failed to convert value of type 'java.lang.String' to required type 'java.util.UUID'; nested exception is java.lang.IllegalArgumentException: Invalid UUID string: name=Partner_100_prepared_input_data"]}

Any ideas what I’m doing wrong?

Thanks

1 Like

Hi Pedro,

I just tested the following from Postman, which works perfectly for me:
https://gold-squadron.teams.onedata.de/api/v1/data/name?name=test_virtual

It gives me the metadata of the data table with name test_virtual.

Make sure that you use a valid connection with a ONE DATA type key in your workflow.

Beware that you must manually URL-encode any characters in the data table name that are special in URLs: Percent-encoding - Wikipedia

1 Like

This GET request should work:

https://<OD_HOST>/api/v1/data/name?name=<DATA TABLE NAME>

Can you post your request?

The error indicates, that you most probably forgot the ?name= part since without the query part separator, the URL points to the UUID based data details endpoint.

3 Likes

Indeed, I forgot the query part separator :upside_down_face:. Now it’s working, thank you for your quick responses @Flogge and @stefan.ganser . Here’s a taco as a reward :taco:

thanks for the taco. Now I don’t need to go grocery shopping. Awesome!