1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wangankeji-restfx

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

restfx

Фреймework для создания RESTful сервисов на Python3.

Основан на werkzeug

Почему использовать этот фреймоворк

Целью разработки этого фреймоворка является повышение производительности разработки.

Этот фреймоворк решает следующие проблемы:

  • Отсутствие сложной конфигурации маршрутов, регистрация маршрутов автоматически выполняется при регистрации корневого модуля. Все маршруты внутри модуля будут автоматически собраны и вызваны.
  • Нет необходимости явно указывать URL маршрутов, они полностью автоматически распознаются.
  • Автоматическое парсинг и валидация запросов, заполнение значений в функциях маршрута, что позволяет избежать сложной работы с получением и проверкой типов параметров. Необходимо просто написать функцию и объявить её параметры.
  • Предоставление страницы со списком API и поддержка тестирования API, позволяющая обновлять API вместе с кодом, без необходимости ручного поддержания документации API. Смотрите скриншоты
  • Поддержка инъекции маршрутов, чтобы передавать данные/функции в маршрут через параметры, тем самым избегая частых импортов и повторного использования кода.

Недостаток данного фреймоворка: отсутствие возможности передачи параметров как части пути URL

Установка

pip install restfx

С версии Yöntem 0.7.1 после установки можно создать базовую структуру проекта с помощью команды CLI restfx:

restfx create projectname

Для использования этой команды может потребоваться установить restfx глобально.

Документация

Документация доступна на Gitee Wiki

Создание приложения

import os

import restfx

if __name__ == '__main__':
    root = os.path.dirname(__file__)
    app = restfx.App(root, api_prefix='any/prefix', debug=True)
    app.map_routes({
        'x': 'test'
    })
    app.map_static(static_map={})
    app.startup(host='127.0.0.1', port=9127)

Определение маршрутов

test/api/demo.py

from restfx import route
from restfx.http import HttpRequest, HttpFile


@route(module='Test module name', name='Test name - GET')
def get(request, param1, param2=None, param3: int = 5):
    # request will be an instance of HttpRequest
    return {
        'param1': param1,
        'param2': param2,
        'param3': param3,
    }


@route(module='Test module name', name='Test name - POST_PARAM')
def post_param(param1, req: HttpRequest, from_=None, param3=5):
    # req will be an instance of HttpRequest
    return {
        'param1': param1,
        'from': from_,
        'param3': param3,
    }


@route(module='Test module name', name='Test name - PUT_PARAM')
def put(request: str, param1, file: HttpFile, param3=5):
    # request will contain the request parameters, HttpRequest not specified in function arguments
    return {
        'request': request,
        'param1': param1,
        'param3': param3,
    }


@route(module='Test module name', name='Test name - DELETE_PARAM')
def delete(request, param1, from_=None, param3=5, **kwargs):
    # undefined request parameters will be passed to kwargs
    return {
        'param1': param1,
        'from': from_,
        'param3': param3,
        'variable_parameters': kwargs
    }

Скриншоты

Ниже приведены скриншоты страницы списка API, соответствующий исходный код маршрутов представлен в файлах

Ниже приведены скриншоты, видимые только в каталоге Gitee репозитория

лист

тест

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Фреймворк для RESTful-сервисов на Python3. Развернуть Свернуть
MIT
Отмена

Обновления (24)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/wangankeji-restfx.git
git@api.gitlife.ru:oschina-mirror/wangankeji-restfx.git
oschina-mirror
wangankeji-restfx
wangankeji-restfx
master