Перейти к содержанию

Простой пример

Создайте приложение:

slinn create-app example

В файле example/app.py вашего проекта укажите следующий пример:

from slinn.net.http import HttpRouter, HttpRequest
from slinn.net.http.responses import HttpRedirect
from slinn.net.http.filters import AnyFilter


router = HttpRouter()


@router.get('api/<str method>')
async def api(request: HttpRequest, method: str):
    return {
        'status': 'ok',
        'method': method,
        'ip': request.ip
    }

@router.get()
@router.get('index')
async def index():
    return HttpRedirect('/helloworld')


@router(AnyFilter)
async def helloworld():
     return 'Hello world!'

В этом примере создается диспатчер dp. Это стандартное и обязательное название для корневых диспатчеров приложений в файлах app.py.

Прописаны три обработчика:

  • api - возвращает HttpJSONResponse с методом, извлеченным из ссылки и с IP-адресом, с которого пришел запрос. Например, GET /api/ping вернет {"status":"ok","method":"ping","ip":"127.0.0.1"};

  • index - возвращает HttpRedirect редирект на /helloworld. Обработчик вызывается только при GET / и GET /index;

  • helloworld - возвращает HttpResponse с текстом Hello, world! при любом запросе (кроме вышеописанных).