Hug | Высокопроизводительные инструменты разработки API следующего поколения

задняя часть Python
Hug | Высокопроизводительные инструменты разработки API следующего поколения

«Это 14-й день моего участия в первом испытании обновлений 2022 года. Подробную информацию о мероприятии см.:Вызов первого обновления 2022 г.".

предисловие

Недавно я нашел так называемый высокопроизводительный процессор следующего поколения.Apiсредства разработки, этоHug.

по сравнению сDjango、Flask、FastApiЖдатьApiИнструменты разработки,HugКаковы особенности и преимущества?

Сегодня вместе посмотрю.

О объятиях

HugПо своей сути он значительно упрощаетApiразвития, по сравнению сFlaskПроще.

Первоначальный замысел Hug

  • позволятьApiЧрезвычайно прост в разработке
  • Поощряйте программистов писать самодокументирующийся код
  • Быстро, поэтому разработчики не выбирают другие фреймворки для повышения производительности.
  • в соответствии сHug ApiНаписание тестов также становится проще
  • Решайте проблемы во фреймворке, а не в пользователе
  • новое поколениеApiоснова технологии

В результатеHugна основеFalconвысокая производительностьHTTPфреймворк, поддерживается толькоPython@3

Практика (посмотрите, как это просто)

Установить обнять

pip install hug --upgrade

demo

код

Hug代码

запустить службу

启动服务

Hugлокально8000Порт запускает для нас сервер разработки, и мы получаем доступhttp://localhost:8000увидеть эффект

效果

вздох,So Easy!

пасхальные яйца

Выше мы определилиhappyNewYearметоды привязаны к корневому пути,HugПозволяет нам не связывать пути.

дефолт,Hugавтоматически после того, как мы изменим кодReload.

Код (просто удалите параметр пути декоратора)

无路径参数的代码

доступhttp://localhost:8000Эффект

404友好

Хотя путь не определен, ноHugоказал нам дружеское404, и сообщить вам о путях, к которым вы можете получить доступURI, метод запроса, пример и вывод.

мы пытаемсяHugПриглашение изменить путь запросаhttp://localhost:8000/happyNewYearЭффект увидите позже

方法名即路径

Конечно, определенные пути и неопределенные пути нельзя смешивать в одном и том же методе.

параметр пути

и большинствоApiКак и фреймворк, эти основные функции поддерживаются.В этой статье мы используем толькоHugИспользование параметра пути показано как репрезентативное.

код

带路径参数的代码

Эффект

带路径参数的效果

Управление версиями API

существуетHugОчень просто и удобно управлять и определять версию интерфейса вHugв декоратор добавленоversionпараметры.

код

定义了Api版本的代码

Эффект

v1版本代码效果

v2版本代码效果

Как и выше, используяHugМы можем легкоApiномер версии для управления и рефакторинга.

Тестовые API объятий

Мы сказали вышеHugПомимо упрощения разработки, это также может упростить тестирование, теперь мы используем его вместе.HugтестироватьHug.

тестовый код

import hug
import demo
from hug import HTTP_200

def testHpny():
    '''
        @api_or_module: Api模块,即api文件
        @url: 即Url,去除host和port的部分
    '''
    resp = hug.test.get(api_or_module=demo,url='/v1/Python研究所的朋友们')
    # 打印影响状态和响应数据
    print(resp.status,resp.data)
    # 断言
    assert resp.status == HTTP_200
    assert resp.data != None

if __name__ == '__main__':
    testHpny()

выполнить тест

测试通过

Hugне только будетApiразвитие становится легче, а такжеApiИнтегрирована тестовая интеграция, что действительно позволяет разработчикам быстро разрабатывать качественныеApi.

Ссылаться на:hugapi.github.io/hug/