Skip to main content

一个以微服务为重点扩展 sanic 的 API 框架。

项目描述

疯狂的

疯狂的

构建状态 文件状态 编解码器

PyPI 版本 PyPI 版本 PyPI 许可证 黑色的

Insanic 是一个扩展sanic的微服务框架。它试图包含在微服务架构中开发的所有最佳实践。为此,需要某些堆栈,因此 Insanic 是一个非常固执己见的框架。

将其视为 django-rest-framework 是 django 但用于微服务使用(并且功能比 drf 少得多)。

为什么我们需要这个

我们需要这个,因为我们需要一个框架让我们的开发人员在迁移到微服务架构的同时快速开发服务。

如前所述,这是非常固执的,原因是在尝试选择用于其服务的软件包时减少研究时间。它规定了所有必要的模式并引导应用程序,以加快构思和部署之间的循环时间。

特征

  • 用户和其他服务(如 drf)的身份验证和授权

  • 简单的服务请求

  • 标准化错误消息格式

  • 连接管理器到 redis

  • 用于提取公共路由的实用程序(在注册到 api 网关时会有所帮助)

  • 引导监控端点

  • 节流

文档

有关更多详细信息,请参阅文档

安装

先决条件

核心依赖包括:

  • sanic - 扩展 sanic

  • httpx - 向其他服务发出异步请求

  • PyJWT - 用于身份验证

  • Redis - 用于缓存和节流

安装:

$ pip install insanic-framework

用法

对于非常基本的用法,它与 Sanic 几乎相同:

  1. 创建一个python文件。前任。应用程序.py

from insanic import Insanic
from insanic.conf import settings
from sanic.response import json

settings.configure()
__version__ = "0.1.0"

app = Insanic(__name__, version=__version__)

@app.route('/')
async def example(request):
    return json({"insanic": "Gotta go insanely fast!"})

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000)
  1. 运行

python run.py
  1. 签入浏览器或curl

curl http://localhost:8000/

更多示例和用法请参考文档

测试

疯狂的测试使用 pytest 和 tox 运行。

$ pytest

# with coverage
$ pytest --cov=insanic --cov-report term-missing:skip-covered

# a certain set of tests
$ pytest --pytest-args tests/test_pact.py

# tox, run for sanic > 19.12 and python >= 3.6
$ tox

发布历史

有关完整的变更日志,请参阅CHANGELOG.rst

由于 Insanic 最初是在内部开发和发布的,因此在此期间所做的更改,请参阅 CHANGELOG_LEGACY.rst

贡献

有关设置开发环境以及如何为 Insanic 做出贡献的指南,请参阅CONTRIBUTING.rst指南。

已知的问题

  • Insanic 不能与超过 1 个工人一起运行。

根据 MIT 许可分发。有关更多信息,请参阅许可证

感谢我之前公司的所有人与我一起工作,使这成为可能。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

insanic-framework-0.9.2.tar.gz (242.2 kB 查看哈希)

已上传 source

内置分布

insanic_framework-0.9.2-py3-none-any.whl (53.4 kB 查看哈希

已上传 py3