带有可选json模式验证的aws lambda的pico框架

peachai-lambdarest的Python项目详细描述


#Lambdarest公司[构建状态](http://travis-ci.org/trustpilot/python-lambdarest.svg?branch=master)(https://travis-ci.org/trustpilot/python-lambdarest)[![最新版本](https://img.shields.io/pypi/v/lambdarest.svg)(https://pypi.python.org/pypi/lambdarest)[![Python支持](https://img.shields.io/pypi/pyversions/lambdarest.svg)(https://pypi.python.org/pypi/lambdarest)

具有内置dispatcher
*decorator的构造函数,用于注册处理http方法的函数
*使用相同的decorator进行可选的json模式输入验证

\installation

[PIP](https://pip.pypa.io/):

```bash
pip安装lambdarest
````

lambda\u handler


@lambda\u handler.handle("get")
>def my自己的获取(event):
return{"this":"将被json转储"}






"httpmethod":"获取",
"path":"/"
}
result=lambda_handler(event=input_event)
assert result=={"body":"{"this":"将被json转储"},"statuscode":200,"headers":{}
```


"type":"object",
"properties":{
"body":{
"type":"object",
"properties":{
"foo":{
"type":"string"
}
}
}
}
}
}


@lambda_handler.handle("get",
def my-own-get(event):
return{"this":"this":"将被json转储"}






ethod:"获取",
"path":"/"
}
result=lambda_handler(event=valid_input_event)
assert result={"body":"{"this":"will be json dumped"},"statuscode":200,"headers":{}}



invalid_input_event={
"body":"{"foo":666},
"httpmethod":"get",
"path":"/"
}
result=lambda_处理程序(event=invalid_input_event)
assert result=={"body":"validation error","statuscode":400,"headers":{}
```

所有数字都转换为浮点数。

``python
"properties":{
"foo":{
"type":"array",
"items":{
"type":"number"
}
}
}
}
}
}
}


@lambda_handler.handle("get",
def my-own-own-get(event):
returnevent["json"]["query"]






















有效的输入事件{
"querystring参数"querystringparameters"{
"foo":"1,2.2,1,2.2,有效的输入事件{

"querystringparameters":"querystringparameters":"{
"foo":"1,2,2,2,2 3"
},
"httpmethod":"获取",
"path":"/"
}
result=lambda_handler(event=valid_input_event)
assert result=={"body":{"foo":[1.0,2.2,3.0]},"statuscode":200,"headers":{}
````

对于使用"path"参数的个别处理程序,对其做出反应的方法为:使用"path"参数的个别处理程序:从lambdarrest import lambda\u handler



@lambda\u handler.handle.handle("get",path=/foo/bar/baz")
>defmyu own\u get(event):
return{"this":"将被json转储"}




<
35___


输入{
"body":{},
"httpmethod":"get",
"path":"/foo/bar/baz"
}
result=lambda_处理程序(event=input_event)
断言result={"body":"{"this":"将被json转储"},"statuscode":200,"headers":{}
````

"异常的unittest行为"由于python unittests泄漏的测试用例,在多个测试用例场景中使用singleton lambda处理程序时,似乎应该注意[这个问题](https://github.com/trustpilot/python-lambdarest/issues/16)。

可以使用pytest对当前的python版本运行测试。要为所有平台运行测试,请使用tox或内置的"test all"make target:

``````
````


请参阅[`setup.py`](setup.py)了解测试依赖项。




release history
--

1.0.1(2017-02-24)
++++++++++++不是向后兼容的更改。**


>第一个oss版本

**功能**
-为单个http方法分派处理程序
-(可选)对端点进行jsonschema验证
-自动包装响应


2.0.0(2017-03-04)
+++++++不是向后兼容的更改。**

**功能**
-现在json分为["json"]["body"]用于post body和["json"]["query"]用于json加载的查询参数
-jsonschema validation获取整个["json"]对象,因此请记住更改架构/代码!!!!

2.1.0(2017-03-06)
++++++++++++++/>-更多测试

2.2.1(2017-10-03)
++++++++++++++

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

推荐PyPI第三方库


热门话题
java嵌套循环打印一个数字,旁边有相同数量的星号   java JodReports替代方案   java如何将模型类parcelable对象从片段传递到活动?   java JCS缓存删除功能不删除特定元素   如何打开。Java的dll文件。   java在这种情况下如何选择聚合根?   java从CellEditorListener获取编辑的TreeNode   Java到web服务和mysql   从openssl ec在Java中创建公钥时出现加密无效密钥异常   Java数组:添加多个数组的元素时忽略空数组   java在初始化后向fragment发送数据   JButtons的java数组正在返回void   若联接列不包含特定值,则java JPA条件生成器仅返回实体   java ActionBar问题:NPE   java Portlet是被广泛使用还是非常罕见?