2017-02-23 5 views
1

Web APIを公開するためにaiohttpを使用するアプリケーションを作成しています。私は別のプロトコル(xmpp)で同じapiを公開する必要もあります。現在の解決策は、通常のHTTP接続(aiohttpクライアント)を使用してWeb APIに接続し、xmppを介して応答を転送するxmppクライアントを同じプロセスに組み込むことです。しかし、両方が同じプロセスで実行されているので、接続を「短絡」する方法があれば好きです。クライアントとaiohttp Webサーバー間の短絡接続

私はRequestインスタンスを作成し、それをaiohttp Webアプリケーション(おそらく_handle()メソッド?)のメソッドに渡して処理するようなことを考えています。

これを(できれば)非ハッキング方式で行う方法に関するヒントはありますか?

答えて

0

私が働いて何かが今では、少なくともプライベートメソッドに依存しないています

req = Request(...) 
req.match_info = await app.router.resolve("/api/1.0/status") 
response = req.match_info.handler(req) 

これは動作しますが、改善の余地があります。私はカスタムの単純化されたリクエストクラスも使用しています:

from yarl import URL 

class XmppHttpRequest: 
    def __init__(self, method, path): 
     self.method = method 
     self.path = path 
     self.rel_url = URL(path) 
     self.url = self.rel_url 
     self.match_info = None 

これは私が今必要なものです。

関連する問題