I have a situation where I have (or am going to have) multiple applications running on a single web2py instance. Each application will do its own thing, but they are all using the same databases. Some of the applications may serve as backend API endpoints where certain kinds of data can be retrieved. Other applications may sometimes want to make calls to these endpoints to get the data and use it in their own operations.
So what I'm wondering is: is there any way for one application to call a controller in another application and get the raw data that WOULD be used to build an actual HTTP response, but without actually going through the network? That is, suppose I have and endpoint /app1/controller1/get_data and another /app2/controller2/do_something . Inside do_something, I want to get the data that get_data gets. Currently I have get_data set up as a JSON service. I could certainly make the request to the other endpoint, but that involves a number of extra steps: generating an outgoing HTTP request, serializing any data to passed with it, generating the incoming HTTP request object, deserializing the request data, then serializing the response and deserializing it again when it's received. What I really want to do is to just call the function get_data AS IF a request had been submitted, but have everything happen on the server, without any network requests actually happening. As far as I can tell, I can't in any way "import" the get_data function from the other app, because if I call it, it won't have the magic environment set up (e.g., "db" won't exist for it to do its database queries). I would even be okay with "pretending" like I was doing a request, as long as web2py could somehow realize that the app I want to call is running on the same web2py instance, and call it "directly" instead of submitting a network request to itself. I realize that this architecture involves apps that are more interdependent than they would be in a "by the book" web2py project. But basically the idea is that the functionality of the apps is independent, and in theory they should work if running on different servers, by making real requests. It's just that, IF they are running on the same server, I'd like to communicate between them without going through the network, to improve performance. Also, I can't really change the architecture since it's for a project I'm working on but don't ultimately control. -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.