Metadata-Version: 2.1
Name: http-tools-abm
Version: 2.0.50070
Summary: 
Author: Mike Orlov
Author-email: m.orlov@technokert.ru
Requires-Python: >=3.9,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: aiohttp (>=3.8.3,<4.0.0)
Requires-Dist: async-tools-abm (>=0.1.50022,<0.2.0)
Requires-Dist: furl (>=2.1.3,<3.0.0)
Requires-Dist: init-helpers-abm (==0.1.50021)
Requires-Dist: multidict (>=5.1.0,<6.0.0)
Requires-Dist: yarl (>=1.6.3,<2.0.0)
Description-Content-Type: text/markdown

# Http tools

Async http server as component

Usage:

```python
import asyncio
import aiohttp

from http_tools import HttpServer, SerializableAnswer

async def amain():
    server: HttpServer = HttpServer(HttpServer.Config('localhost', port=8080))
    server.register_handler('/echo', lambda x: SerializableAnswer(x.key_value_arguments))
    session = aiohttp.ClientSession()
    try:
        await server._on_start()
        response = await session.get('http://localhost:8080/echo', params={'test': 'passed'})
        answer = await response.json()
        assert answer['result']['test'] == 'passed'

    finally:
        await session.close()
        await server._on_stop()

asyncio.run(amain())
```

