Currently I'm investigating solutions for making an application usable from other applications. I.e. I want to give other applications control over my application's internals (request current state and other information, trigger actions etc.).
So far I found three viable solutions:
In my opinion, using a web server with a rest interface would be the easiest option for 3rd parties to connect to your application.
You can also use something like
Swagger to make it even easier for other parties to use your application, since you would be providing a client (albeit, raw) yourself.