How to implement commands from the Command Line Interface Tool in Python, specifically api requests

walker_page
walker_page Member
edited March 2021 in APIs & Domo Developer

Question: Is it possible to execute command line interface tool operations within Python, specifically the 'list-dataflow' command?

Elaboration: The 'list-dataflow' command in the command line interface tool returns JSON structured metadata for a dataflow. My guess is that this command is just making a GET request to a DOMO api. If that is right, then what url and headers are used to make the request?

I need to implement getting this json data programmatically within Python. I am looking for something like the api that is available for datasets, except for dataflows. For example, you can make a GET request to the url 'https://api.domo.com/v1/datasets/<dataset_id>' with the headers {'Accept': 'application/json', 'Authorization': 'bearer <access_token>'}, and the api returns JSON structured metadata for the dataset with the specified dataset_id. Is there a similar functionality available for dataflows?

I have not seen anything about this functionality or a dataflow api in DOMO's documentation or in the Python library 'pydomo'.

Answers

  • @walker_page when you run a command via the Java cli it prints to screen which API it's hitting. If it's just sending a POST request, then recreating the request in python should be pretty straight forward.



    https://www.youtube.com/watch?v=oT5NipvWK1o&t=1309s

    Jae Wilson
    Check out my 🎥 Domo Training YouTube Channel 👨‍💻

    **Say "Thanks" by clicking the ❤️ in the post that helped you.
    **Please mark the post that solves your problem by clicking on "Accept as Solution"
  • @jaeW_at_Onyx , thanks for your response. I have noticed it printing api info when I run the 'connect' command to connect to my company's instance, but no api info is printed when running the list-dataflow command.

  • those may be private APIs.

    you can monitor network traffic from Chrome to see which APIs the browser is hitting. And you can watch the youtube video i linked to see how you authenticate against Domo.

    leveraging private APIs is not something Domo supports, so you have to sleuth a bit.

    There may be some wizards in the Domo User Group that have done it befroe.


    Jae Wilson
    Check out my 🎥 Domo Training YouTube Channel 👨‍💻

    **Say "Thanks" by clicking the ❤️ in the post that helped you.
    **Please mark the post that solves your problem by clicking on "Accept as Solution"
  • Also as a warning private APIs aren't supported by Domo so you're using those at your own risk as they could change without warning and cause issues or break your script.

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**