Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joway/lemon
An async and lightweight API framework for python.
https://github.com/joway/lemon
async koa-style python restful-api uvloop web-framework
Last synced: 16 days ago
JSON representation
An async and lightweight API framework for python.
- Host: GitHub
- URL: https://github.com/joway/lemon
- Owner: joway
- License: mit
- Created: 2017-12-31T05:55:43.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-07T22:03:35.000Z (over 1 year ago)
- Last Synced: 2024-10-14T15:32:58.267Z (29 days ago)
- Topics: async, koa-style, python, restful-api, uvloop, web-framework
- Language: Python
- Homepage: https://pylemon.com
- Size: 611 KB
- Stars: 30
- Watchers: 4
- Forks: 4
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
Lemon is an async and lightweight API framework for python . Inspired by Koa and Sanic .
## Documentation
[https://pylemon.com](https://pylemon.com/#/)
## Installation
```shell
pip install -U pylemon
```## Hello Lemon
```python
from lemon.app import Lemon
from lemon.context import Contextasync def middleware(ctx: Context, nxt):
ctx.body = {
'msg': 'hello lemon'
}
await nxt()async def handler(ctx: Context):
ctx.body['ack'] = 'yeah !'app = Lemon()
app.use(middleware, handler)
app.listen(port=9999)
```
## Hello Lemon Router
```python
from random import randomfrom lemon.app import Lemon
from lemon.context import Context
from lemon.router import Routerasync def middleware(ctx: Context, nxt):
ctx.body = {
'msg': 'hello lemon'
}
await nxt()async def handler1(ctx: Context):
ctx.body['ack'] = 'yeah !'
ctx.body['random'] = random()async def handler2(ctx: Context):
ctx.body = ctx.req.jsonapp = Lemon(debug=True)
router = Router()
router.get('/handler1', middleware, handler1)
router.post('/handler2', middleware, handler2)app.use(router.routes())
app.listen()
```