Hi All,


I am currently building an application that takes APIs from Kaltura, a video management platform, and displays the data from the calls. The current API integration with Outsystems is great, but unfortunately the APIs from this video management system are not very conventional and require a library and some scripting in order for the calls to be made. Right now, I'm just trying to think of the best avenue to go down in order to securely and accurately get data from the APIs and display them on my app.


Here is the link to the documentation for the API in question; via Kaltura: https://developer.kaltura.com/console


I want to avoid using Javascript to accomplish this as I am worried about client-side exposure, but also want to avoid pulling from an outside PHP page that returns the necessary info and utilizes it within the app, as I would like to keep everything as contained as possible. I can insert the library onto our on-prem server, but I would still need an outside script to run in order to take the library and make the necessary calls. Other languages, such as Java, Python, Node, C#, and Ruby are available for this API, however I am not well-versed in many of these, and would imagine they still share the same issue that PHP has. 


My question is admittedly vague, but where do I go from here? Is there a way to 'embed' libraries within Outsystems as a sort of extension? How do I go about taking this library, and making it work for what Outsystems has to offer? 


Any information helps,

Thank you.

Solution

Would be helpful to know if your app is web or mobile.

Looking at the API docs, I'm not sure I see how the APIs require a library. The docs do show how to leverage their available libraries for a variety of platforms, but since CURL is one of the options, then it should be possible to simply use the REST integration built into the platform to make the calls to the API.

Perhaps you can elaborate more on what makes you think this won't work via REST?

Things to think about:

  • It's definitely possible to include JavaScript libraries in an OutSystems application. However, if you're worried about client-side exposure, you can use their C# library to create an extension using Visual Studio, and include that as a dependency of your app. That being said, the fact that the API creator includes a JavaScript library suggests that they're not concerned about the API being called from the client.
  • It might be worth your time to go through the following courses:
  • Back to the topic of "client-side" exposure, if the issue is the API credentials, you can store those on the server and get them dynamically as needed. No need to store them in code on the client. If there's some other concern, please elaborate.

Hope that helps!

Solution

G. Andrew Duthie wrote:

Would be helpful to know if your app is web or mobile.

Looking at the API docs, I'm not sure I see how the APIs require a library. The docs do show how to leverage their available libraries for a variety of platforms, but since CURL is one of the options, then it should be possible to simply use the REST integration built into the platform to make the calls to the API.

Perhaps you can elaborate more on what makes you think this won't work via REST?

Things to think about:

  • It's definitely possible to include JavaScript libraries in an OutSystems application. However, if you're worried about client-side exposure, you can use their C# library to create an extension using Visual Studio, and include that as a dependency of your app. That being said, the fact that the API creator includes a JavaScript library suggests that they're not concerned about the API being called from the client.
  • It might be worth your time to go through the following courses:
  • Back to the topic of "client-side" exposure, if the issue is the API credentials, you can store those on the server and get them dynamically as needed. No need to store them in code on the client. If there's some other concern, please elaborate.

Hope that helps!


Thank you, I will review those tutorials and go over the avenues you've presented to me here. Admittedly, I have very minimal experience in APIs and haven't even scratched the surface with cUrl. Just wanted to get a feel for what I should do next. Thank you for your input!

Just to be clear, you would not be using CURL to access the API. You would use the REST integration of the platform, found on the Logic tab in Service Studio. Just right-click the REST node, click Consume REST API... and plug in the desired API.

The web service integration class I pointed to should provide the necessary details on how to use arguments, headers, etc.