@schema.validate(
        output_schema={"type": "string"},
        output_example="Hello (asynchronous) world! My name is Fred."
    )
    # ``tornado_json.gen.coroutine`` must be used for coroutines
    # ``tornado.gen.coroutine`` CANNOT be used directly
    @coroutine
    def get(self, name):
        # Asynchronously yield a result from a method
        res = yield gen.Task(self.hello, name)

        # When using the `schema.validate` decorator asynchronously,
        #   we can return the output desired by raising
        #   `tornado.gen.Return(value)` which returns a
        #   Future that the decorator will yield.
        # In Python 3.3, using `raise Return(value)` is no longer
        #   necessary and can be replaced with simply `return value`.
        #   For details, see:
        # http://www.tornadoweb.org/en/branch3.2/gen.html#tornado.gen.Return

        # return res  # Python 3.3
        raise gen.Return(res)  # Python 2.7
Shouts hello to the world (asynchronously)!
dataset/ETHPy150Open hfaran/Tornado-JSON/demos/helloworld/helloworld/api.py/AsyncHelloWorld.get