On this page |
ビルトインのハンドラー(例えば、@urlHandlerとか@apiFunction)よりも汎用URLハンドラーが必要な場合、このAsyncURLHandlerクラスを使用します。 汎用ハンドラーを使用すれば、Houdiniのすべてにアクセス可能でありながら他のRPC(例えば、JSON RPC)をそのハンドラー上に構築することができます。 このハンドラーはasyncioで使用できるようになっているため、Python3専用です。
Note
AsyncURLHandlerは、リクエストを処理する際に他のリソースを待機した後に応答する必要がある場合で最適です。 リクエストが何かしらの理由で待機する必要がない場合は、代わりにhwebserver.urlHandlerを使用することを推奨します。
サンプル ¶
以下のサンプルでは、新しいリクエストが来た時に、指定した関数をコールするハンドラーの作り方を載せています。
class URLCallbackHandler(hwebserver.AsyncURLHandler): def __init__(self, path, function, is_prefix=False): URLHandler.__init__(self, path, methods=['GET','POST'], allows_partial=is_prefix) self._function = function async def handle(self, request): if self._function is None: request.send(hwebserver.errorResponse(request, "Handler doesnt have a function attached.", 500)) return resp = await self._function(request) request.send(resp)
メソッド ¶
path
Property
URLHandlerがインストールされるパス。
methods
Property
URLHandlerがインストールされるメソッドのリスト(GET, POSTなど)。
See also |