Check out 
http://web2py.com/books/default/chapter/29/04/the-core#Execution-environment 
and http://web2py.com/books/default/chapter/29/04/the-core#Cooperation.

You might also consider whether the shared functionality can be abstracted 
into Python modules that can be imported by multiple applications.

Anthony

On Thursday, January 5, 2017 at 12:54:59 AM UTC-5, Brendan Barnwell wrote:
>
> 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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to