一个中间件模块,它解决了用nosql数据库构建restapi时的常见问题。
nosql-rest-preprocessor的Python项目详细描述
nosql rest预处理器
=======================
[![构建状态](https://travis-ci.org/felixbr/nosql-rest-preprocessor.svg?branch=master)(https://travis-ci.org/felixbr/nosql-rest-preprocessor)
[![覆盖状态](https://img.shields.io/covertalls/felixbr/nosql rest preprocessor.svg)(https://covertalls.io/r/felixbr/nosql-rest-preprocessor)
一个中间件模块,它解决了用nosql数据库构建restapi时的常见问题。
安装
```
pip安装nosql rest预处理器
```
示例
``Python
从nosql-rest-preprocessor.models导入basemodel
类地址模型(basemodel):
必需的属性={'street','city','plz'}
除了这些和所需的以外,不允许任何东西
可选属性={'location'}
类用户模型(basemodel):
必需的属性={'firstname','lastname','email'}
不可变的属性{'id'}
私有属性={'password','salt'}
将使用addressmodel验证、合并和准备“address”属性的内容
子模型:{
“地址”:addressmodel
}
```
``Python
来自请求的新用户{
“名字”:“sepp”,
“姓氏”:“huber”,
“电子邮件”:“sepp.huber@fancepants.com”,
“地址”:{
“街”:“面包街1”,
“城市”:“伦敦”,
“plz”:“12345”
}
}
检查必需的属性,如果有问题,则引发validationerror
usermodel.validate(来自请求的新用户)
```
``Python
user_obj_from_db=db.fetch_user_by_email(“sepp.huber@fancepants.com”)
删除任何非公共属性
response_obj=usermodel.prepare_response(用户_obj_来自_db)
返回响应(响应对象)
```
``Python
从nosql-rest-preprocessor.models导入basemodel
从nosql-rest-preprocessor.resolvers导入resolve,resolvewith
类地址模型(basemodel):
…
类用户模型(basemodel):
…
已解析的属性={
“地址”=resolvewith(lookup_func=somedb.find_address_by_key,model=addressmodel)
}
…
用户={
“name”:“cookie\u m0nster”,
“地址”:“地址的外键”
}
resolved_obj=解析(用户模型,用户)
resolved_obj['address']现在被somedb获取的dict替换。find_address_by_key('foreign_key_for_address')
```
运行测试
```
PIP安装排毒
排毒
```
=======================
[![构建状态](https://travis-ci.org/felixbr/nosql-rest-preprocessor.svg?branch=master)(https://travis-ci.org/felixbr/nosql-rest-preprocessor)
[![覆盖状态](https://img.shields.io/covertalls/felixbr/nosql rest preprocessor.svg)(https://covertalls.io/r/felixbr/nosql-rest-preprocessor)
一个中间件模块,它解决了用nosql数据库构建restapi时的常见问题。
安装
```
pip安装nosql rest预处理器
```
示例
``Python
从nosql-rest-preprocessor.models导入basemodel
类地址模型(basemodel):
必需的属性={'street','city','plz'}
除了这些和所需的以外,不允许任何东西
可选属性={'location'}
类用户模型(basemodel):
必需的属性={'firstname','lastname','email'}
不可变的属性{'id'}
私有属性={'password','salt'}
将使用addressmodel验证、合并和准备“address”属性的内容
子模型:{
“地址”:addressmodel
}
```
``Python
来自请求的新用户{
“名字”:“sepp”,
“姓氏”:“huber”,
“电子邮件”:“sepp.huber@fancepants.com”,
“地址”:{
“街”:“面包街1”,
“城市”:“伦敦”,
“plz”:“12345”
}
}
检查必需的属性,如果有问题,则引发validationerror
usermodel.validate(来自请求的新用户)
```
``Python
user_obj_from_db=db.fetch_user_by_email(“sepp.huber@fancepants.com”)
删除任何非公共属性
response_obj=usermodel.prepare_response(用户_obj_来自_db)
返回响应(响应对象)
```
``Python
从nosql-rest-preprocessor.models导入basemodel
从nosql-rest-preprocessor.resolvers导入resolve,resolvewith
类地址模型(basemodel):
…
类用户模型(basemodel):
…
已解析的属性={
“地址”=resolvewith(lookup_func=somedb.find_address_by_key,model=addressmodel)
}
…
用户={
“name”:“cookie\u m0nster”,
“地址”:“地址的外键”
}
resolved_obj=解析(用户模型,用户)
resolved_obj['address']现在被somedb获取的dict替换。find_address_by_key('foreign_key_for_address')
```
运行测试
```
PIP安装排毒
排毒
```