没有项目描述

aiohttp-baseapi的Python项目详细描述


#aiohttp_-baseapi

这是一个微型框架,用于在aiohttp之上的高抽象级别上构建http api。
它允许以声明方式创建与模型类似jsonapi的http接口,并允许在任何级别上进行微调。

quick start
安装包

pip installaiohttp_baseapi
在当前目录中创建项目目录结构(它还包含两个示例应用程序)


baseapi start project
install the dependencies

pip install-r.meta/packages
configure postgres db connection

echo“database={'host':'localhost','port':5432,'database':'test','user':'test','password':'test','minsize':1,'maxsize':10}“>;/settings\u local.py
Create migrations


alembic revision--autogenerate-m“init”
Run migrations

alembic upgrade head
运行应用程序

python./main.py port=9000


你可以试试api。它包含“默认”应用程序——它只打印在“/”位置下的所有现有API方法。和“演示”应用程序-它包含两个示例模型

http-get:9000
http-post:9000/authors<;<;'{“data”:{“name”:“john”,“surname”:“smith”}'
http-post:9000/books<;<;'{“data”:{“category”:“fiction”,“name”:“birthday”,“is\u available”:true,“author\u id”:1}'
http-get:9000/books?filter[name]=birthday&;include=authors“
http-get:9000/books/1
http-put:9000/books/1<;<;'{“data”:{“is available”:false}'
http delete:9000/books/1

但是有一些不同。


可以使用“filter”get参数筛选检索到的信息。
可以按多个字段筛选:`filter[fieldname1]=foo&;filter[fieldname2]=bar`.
在这种情况下,响应的“fieldname1”值等于“foo”,而“fieldname2”值等于“bar”。
还可以筛选枚举所需值:`filter[fieldname]=foo,bar`.
在这种情况下,有一些值的“fieldname”等于“foo”或“bar”。

` fieldname2“降序”。


使用参数“fields”只能检索所需的字段。
例如:“fields=fieldname1,fieldname2”。在这种情况下,响应的值只有“fieldname1”和“fieldname2”字段。

可以使用“page”参数执行分页(限制和偏移)。
用法:`page[limit]=10&page[offset]=20`-标准分页(跳过20个项,返回最大值10)。
BR/>也有可能使用参数“包含”来附加相关实体。它将只影响包含的实体。
示例:
`filter[entity.fieldname]=foo`-filter;
`sort[entity]=fieldname`-sorting;
`fields[entity]=fieldname`-选择字段;
`page[entity.limit]=10`-分页。

可以使用json模式(可以从模型描述中自动生成)或手动进行验证。
默认的数据提供程序是database,但您可以使用任何想要的内容。

单元测试

运行:

$cd src
$make unit test

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java楼梯的最大高度   java Jackson从1.7.1更新到2.8.6 JsonTypeInfo子类型反序列化   Spring WebApp中的java JPA异常处理   java在SwingWorker(doInBackground)中从WorkerThread调用多个方法?   java Android Studio构建到jar   java是添加多个按钮组的更有效方法   java MySQL JDBC连接池最大大小   java如何防止元素<Integer>变成元素<Object>   Java:处理大型XML文件提取数据而不编写状态自动机?   SpringBoot和React Web应用程序中CAS的java重定向问题   需要java算法方面的帮助吗   java在JDK 16中使用PowerMock   java异常错误本机方法签名   在Java Android中将JSON映射到数组/对象   如何打开一个窗口。java程序中的dat文件   java应用程序引擎+Maven+热插拔   java Moxy的getValueByXPath为除根元素以外的所有元素返回null