Changelog

在这里,您可以看到每个EVE版本之间的完整更改列表。

正在开发中

  • FIX:分发包不应包含测试套件 (#1506)

  • 添加到CI矩阵中的Python3.11。

  • .readthedocs.yml已升级到V2。

版本v2.1.0

于2023年3月14日上映。

新的

  • 能够以每个资源为基础自定义分页限制 (#1498)

固定的

  • FASK 2.2+支持 (#1497)

  • CI测试运行失败,原因是 mongo: command not found 在Ubuntu 22.04上 (#1499)

版本v2.0.4

于2022年11月10日上映。

固定的

  • 不兼容类型的比较 (#1492)

  • Python3更新,以及一些重构 (#1493)

版本v2.0.3

于2022年11月2日上映。

固定的

  • 畸形 LAST_UPDATED 字段 (#1490)

版本v2.0.2

于2022年9月23日上映。

固定的

  • FIX:如果出现以下情况,ETag生成失败 uuidRepresentation 未在Mongo_Options中设置 (#1486)

版本V2.0.1

于2022年9月7日上映。

固定的

  • MONGO_URI 未正确解析用户名、密码和身份验证源 (#1478)

  • 将烧瓶依赖锁定到版本2.1 (#1485)

  • 修复文档拼写错误 (#1481)

  • 只需建造3个 Python 轮子。

版本v2.0

于2022年6月8日上映。

破断

从这个版本开始,Eve支持Python3.7及更高版本。

新的

  • 添加对Python3.9的支持 (#1437)

  • 添加对Python 3.10的支持 (#1440)

  • MONGO_OPTIONS 收购了一家新的 uuidRepresentation 设置,使用 standard 作为其缺省值。这是PyMongo 4+为了无缝处理最终的 uuid 价值观。看见 PyMongo documentation 有关详情 (#1461, #1464 )。

固定的

  • AttributeError:模块“”werkzeug.utils“”没有属性“”scape“ (#1474)

  • 从Werkzeug 2.1开始,HATEOAS链接是相对的,而不是绝对的 (#1475)

  • Eve不支持最新版本的PyMongo(V4) (#1461, #1464 )

  • 修复500空令牌/载体错误 (#1456)

  • 如果字段为空列表,则不返回相关字段 (#1441)

  • PyMongo 3.12+支持包含虚线字段的键 (#1466)

  • 在依赖项中固定PYMOGO版本 (#1461)

  • 为Python 3切换做好准备 (#1445)

  • 更新有关空资源分页的文档和测试 (#1463)

  • 修复投稿信息中的分叉链接 (#1447)

  • 带有UUID的自定义IDS值的教程错误 (#1451)

  • 文档打字错误 (#1462, #1469 )

  • 从Travis CI切换到GitHub操作 (#1439, #1444 )

版本1.1.5

于2021年1月25日发布。

固定的

  • 嵌套唯一字段验证仍不起作用 (#1435)

  • 文档:更正的变量名称 (#1426)

  • 版本控制:支持动态数据源 (#1423)

  • 禁用GridFS中的MD5支持,因为它已弃用 (#1410)

  • 演示应用程序已被Heroku终止。去掉了任何关于它的提法。

版本1.1.4

于2020年10月22日发布。

固定的

  • 使用时引发错误 embedded 使用嵌套的DICT (#1416)

  • 仅在以下情况下才显示媒体终结点 RETURN_MEDIA_AS_URL 设置为 True (#1415)

  • 使用 **mongo_options 在……里面 with_options (#1413)

版本1.1.3

于2020年9月19日发布。

固定的

  • 修复:使用集群mongo对新创建的文档进行修补时的竞态条件 (#1411)

版本1.1.2

于2020年7月9日发布。

固定的

  • 每个域禁用投影时添加缺少的条件 (#1398)

  • 删除不必要的理解 (#1391)

1.1.1版本

于2020年5月10日发布。

固定的

  • 停用 merge_nested_documents 中断修补程序的版本控制 (#1389)

  • 烧瓶试验失败1.1.2 (#1378)

  • BANDWIDTH_SAVER 不再与 resolve_resource_projection (#1338)

  • unique_within_resource 在没有数据源筛选器的资源中使用的规则 (#1368)

  • 不带的dicts schema 规则被打破了 b8d8fcd (#1366)

  • 403 Forrbidden添加到 STANDARD_ERRORS (#1362)

  • unique 约束在dict或list内部时不起作用 (#1360)

  • 文档拼写错误 (#1375)

版本1.1

于2020年2月7日发布。

新的

  • MONGO_QUERY_WHITELISTmongo_query_whitelist . 除了允许的运算符的正式列表外,允许的额外Mongo查询运算符的列表。默认为 [] . (#1351)

固定的

  • 使用Werkzeug 1.0启动崩溃 (#1359)

  • $eq 支持的查询运算符中缺少 (#1351)

  • 文档拼写错误 (#1348, #1350

1.0.1版本

于2020年1月26日发布。

  • 修复:混合外部和本地对象ID会中断查询 (#1345)

版本1

2019年12月19日发布。

新的

  • Python3.8添加到CI矩阵 (#1326)

  • 支持python 3.4 (#1297)

  • unique_within_resource 验证规则。仅在API资源级别强制属性的唯一性,与 unique 在数据库集合级别强制唯一性的规则 (#1291)

  • 将doc8添加到开发需求中 (#1343)

固定的

  • 销到Cerberus<2.0 (#1342)

  • 在Mongo 4.2和 _id 包括在有效载荷中 (#1341)

  • 修正了2个测试风格的小改进 (#1330)

  • Werkzeug 0.15.4在Python3.8中崩溃 (#1325)

  • 投影示例中的Curl请求不起作用 (#1298)

  • 更新安装说明 (#1303)

  • 打破 )Delete on empty resource返回404,应返回204 (#1299)

  • MONGO_REPLICA_SET 忽略 (#1302)

  • 文件打字错误 (#1293, #1315#1322#1324#1327

  • 烧瓶1.1.1破裂 test_logging_info 测试 (#1296)

  • 在EVE FrontPage上显示完整的版本号。

  • 更新到EveGenie存储库的链接。新的维护者:大卫·齐斯基。

版本0.9.2

2019年6月14日发布。

固定的

  • 地理查询缺少对 $minDistance 蒙古运营商 (#1281)

  • 查找参数未传递给 pre_<event> 使用特定资源URL挂钩 (#1283)

  • Put请求没有为定义了一个字段的字段设置默认值 (#1280)

  • 规范化默认字段时修补程序崩溃 (#1275, #1274

  • 避免返回的条件 X-Total-Count 禁用计数时,也会筛选出资源为空且计数为0的情况。 (#1279)

  • EVE使用的第一个示例并不真正起作用 (#1277)

0.9.1版

2019年5月22日发布。

新的

  • NORMALIZE_ON_PATCH 在补丁请求上切换规范化 (#1234)

固定的

  • 由于并发请求而中断的文档计数 (#1271)

  • 请求嵌入资源时文档计数已中断 (#1268)

  • 如果 ignore_fields 包含嵌套字段,文档被转换 (#1266)

  • 与Werzeug碰撞>=0.15.3 (#1267)

  • 修复尝试忽略不存在的嵌套字段时的崩溃 (#1263)

改进

  • 删除不支持的 transparent_schema_rules 文档选项 (#1264)

  • 碰撞(和销)Wekzeug至0.15.4 (#1267)

  • 快速入门:更好 MONGO_AUTH_SOURCE 解释 (#1168)

正在中断更改

标准框架用户没有已知的中断更改。但是,如果您正在使用开发人员API:

  • 注意 io.base.DataLayer.find() 签名已更改,可选 perform_count 已添加参数。方法返回值现在是一个元组 (cursor, count)cursor 查询结果与以前一样吗? count 是文档计数,当 perform_count = True .

版本0.9

2019年4月11日发布。

正在中断更改

  • 需要Werkzeug v0.15.1+。您希望升级,否则您的EVE环境可能会中断。有关完整的故事,请参阅 #1245#1251 .

新的

  • hateoas支持添加到聚合结果中 (#1208)

  • on_fetched_diffs 事件挂钩 (#1224)

  • 支持Mongo 3.6+ $expr 查询运算符。

  • 支持Mongo 3.6+ $center 查询运算符。

固定的

  • 用dbref值替换未知字段时插入失败 (#1255, #1257

  • max_results=1 应在聚合终结点上遵守 (#1250)

  • 修补程序不正确地规范化子文档中的默认值 (#1234)

  • 未经授权的异常不与werkzeug一起工作>=15.0 (#1245, #1251

  • 嵌入文档排序不正确 (#1217)

  • 对格式错误的排序参数执行EVE崩溃 (#1248)

  • 替换包含dbref的同一文档时插入失败 (#1216)

  • 对于POST请求,不考虑数据源投影 (#1189)

  • 软删除删除 auth_field 来自文档 (#1188)

  • 在Mongo 3.6+上,我们不会在补丁上返回400个“不可变字段”,然后 (#1243)

  • 对于超出速率限制的情况,需要JSON响应 (#1227)

  • 来自不同进程的同一记录的多个并发修补程序应导致至少一个修补程序因412错误而失败(前提条件失败) (#1231)

  • 仅嵌入不遵循 data_relation.field (#1069)

  • HATEOAS _links 好像多了一个 &version=diffs (#1228)

  • 执行oplog_push时不要更改etag (#1206)

  • 媒体终结点缺少CORS响应头 (#1197)

  • 警告:黑色上存在意外的密钥: python_version (#1244)

  • 用户警告:JSON设置已弃用。改为使用渲染器 (#1241) .

  • DeprecationWarning:decodeString已弃用,请使用decodeBytes (#1242)

  • DeprecationWarning:计数已弃用。改用collection.count_文档 (#1202)

  • 文档拼写错误 (#1218, #1240

改进

  • eve包现在以python轮的形式分发 (#1260)

  • 将Werkzeug版本添加到v0.15.1+ (#1245, #1251

  • 将pymongo版本提升到v3.7+ (#1202)

  • 添加到CI矩阵的python 3.7 (#1199)

  • 当聚合阶段的参数为空/未设置时省略聚合阶段的选项 (#1209)

  • 哈特奥斯:现在 _links 字典可能有 related 字典,每个键值对生成数据关系字段的相关链接 (#1204)

  • XML呈现器现在支持数据字段标记属性,例如 hreftitle (#1204)

  • 对进行分析 req.sortreq.where 通过将逻辑转移到专用方法中,可以轻松地重用 (#1194)

  • 在主页上添加“python 3 is highly preferred”注释 (#1198)

  • 在构建文档时嵌入sphinx contrib。

0.8.1 版本

2018年10月4日发布。

新的

  • 添加对Mongo的支持 $centerSphere 查询运算符 (#1181)

  • NORMALIZE_DOTTED_FIELDS .如果 True ,点域作为子文档域进行分析和处理。如果 False ,点式字段保持未处理状态,有效负载按原样传递给底层数据层。请注意,对于默认的mongo层,将其设置为 False 将导致错误。默认为 True . (#1173)

  • normalize_dotted_fields .终结点级别重写 NORMALIZE_DOTTED_FIELDS . (#1173)

固定的

  • mongo_indexes :更改现有索引的键时出现“operationfailure” (#1180)

  • v0.8:“操作失败”执行MongoDB全文搜索 (#1176)

  • python 2.7上的“attributeError”(过时) JSONXML 使用设置 (#1175) .

  • 在与软删除结合使用文档嵌入时,出现“类型为'nonetype'的type error参数不可重复”错误。 (#1120)

  • allow_unknown 使用嵌套的dict字段验证规则失败 (#1163)

  • 当值为空时,更新具有可为空数据关系的字段失败 (#1159)

  • “cerberus.schema.schemaError”当 VALIDATE_FILTERS = True . (#1154)

  • 当类型数组位于架构中时,序列化程序失败。 (#1112)

  • 更换损坏的 make audit 快捷方式 make check ,将命令添加到 CONTRIBUTING.rst 它不见了。 (#1144)

改进

  • 作为预提交挂钩,对阶段性文件执行lint检查和修复。 (#1157)

  • 在CI上,首先执行起毛检查。如果linting检查成功,则对整个矩阵执行测试套件。 (#1156)

  • 重新格式化代码以匹配黑色代码样式。 (#1155)

  • 使用 simplejson 代码库中的任何地方。 (#1148)

  • 安装一个标记并关闭过时问题/请求的bot。 (#1145)

  • 仅在中设置包版本 __init__.py . (#1142)

文档

  • 打字错误 (#1183, #1184#1185

  • 添加 MONGO_AUTH_SOURCE 快速启动。 (#1168)

  • 在嵌入speakerdeck.com幻灯片时修复sphinx嵌入错误 (#1158)

  • 修复到邮差应用程序的断开链接。 (#1150)

  • 更新文档侧边栏中过时的pypi链接。 (#1152)

  • 仅在文档主页上显示版本号。 (#1151)

  • 修复文档建立在读取文档的基础上。 (#1147)

  • 添加 ISSUE_TEMPLATE.md Github模板文件。 (#1146)

  • 改进changelog格式以减少噪音并提高可读性。 (#1143)

版本0.8

2018年5月10日发布。

备注

确保您阅读了 Breaking Changes 下面部分。

  • 新:支持 partial media requests .客户端可以通过添加 Range 媒体请求的标题 (#1050) .

  • 新的: Renderer classes . RENDERER 允许更改启用的渲染器。默认为 ['eve.render.JSONRenderer', 'eve.render.XMLRenderer'] .您可以通过子类化创建自己的渲染器。 eve.render.Renderer .每个渲染器都应该设置有效的mime attr并 .render() 方法已实现。请注意,必须始终启用至少一个渲染器 (#1092) .

  • 新的: on_delete_resource_originals 软删除发生时激发 (#1030) .

  • 新的: before_aggregationafter_aggregation 事件挂钩允许附加 custom callbacks to aggregation endpoints (#1057) .

  • 新的: JSON_REQUEST_CONTENT_TYPES 或支持的JSON内容类型。当您需要支持特定于供应商的JSON类型时很有用。请注意:回复仍然符合标准。 application/json 类型。默认为 ['application/json'] (#1024) .

  • 新建:启用媒体终结点时,将使用默认身份验证类来保护它。 (#1083; #1049

  • 新的: MERGE_NESTED_DOCUMENTS .如果 True ,对嵌套字段的更新将与上的当前数据合并。 PATCH .如果 False ,更新将覆盖当前数据。默认为 True (#1140) .

  • 新:支持MongoDB十进制类型 bson.decimal128.Decimal128 (#1045) .

  • 新:支持 FeatureFeatureCollection geojson对象 (#769) .

  • 新增:添加对MongoDB的支持 $box 地理查询运算符 (#1122) .

  • 新的: ALLOW_CUSTOM_FIELDS_IN_GEOJSON 允许geojson中的自定义字段 (#1004) .

  • 新增:添加对MongoDB的支持 $caseSensitive$diactricSensitive 查询运算符 (#1126) .

  • 新增:添加对MongoDB按位查询运算符的支持 $bitsAllClear$bitsAllSet$bitsAnyClear$bitsAnySet (#1053) .

  • 新:支持 MONGO_AUTH_MECHANISMMONGO_AUTH_MECHANISM_PROPERTIES .

  • 新的: MONGO_DBNAME 现在可以结合使用 MONGO_URI .以前,如果 MONGO_URI 如果缺少数据库名称,将引发异常 (#1037) .

  • 修复:即使在 OPLOG = True (#1074) .

  • 修复:无法定义默认投影和请求特定字段。 (#1036) .

  • 修复: VALIDATE_FILTERSALLOWED_FILTERS 不要使用子文档字段。 (#1123) .

  • 修复:聚合查询参数不替换列表中的键 (#1025) .

  • 修复:如果遇到“x_of”,则随机跳过字段的序列化错误 (#1042)

  • 修复:放置用户受限资源访问的行为。确保在任何情况下,用户都无法覆盖其他用户拥有的项目 (#1130) .

  • 修复:与Cerberus 1.2碰撞 (#1137) .

  • 修复文档错误 (#1114, #1102

  • 修复:与Cerberus验证规则的断开文档链接。

  • 修复:将sphinxcontrib嵌入到dev-requirements.txt中。

  • 修复:已删除ordereddict依赖项;使用 OrderedDictbackport_collections 相反 (#1070) .

  • 检索嵌入文档列表的性能得到改善 (#1029) .

  • dev:重构索引创建。我们现在有了新的 eve.io.mongo.ensure_mongo_indexes() 确保最终 mongo_indexes 为资源定义的是在活动数据库上创建的。可以导入和调用该函数,例如在多数据库工作流中,根据执行请求的已验证用户(通过自定义身份验证类)激活数据库。

  • 开发:添加 Makefile with shortcuts 用于测试、文档构建和开发安装。

  • dev:切换到pytest作为标准测试工具。

  • dev:删除 requiments.txtdev-requirements.txt . 使用 pip install -e .[dev|tests|docs] 相反。

  • 测试:最后确认Mongo和python都存在现代API(去掉大多数不推荐使用的警告)。

  • 更改:支持Cerberus 1.0+ (#776) .

  • 更改: JSONXML 设置已弃用,将在将来的更新中删除。使用 RENDERERS 相反 (#1092) .

  • 烧瓶相关性设置为大于等于1.0 (#1111) .

  • pymongo依赖项设置为>=3.5。

  • 事件相关性设置为大于等于v0.3。

  • 删除flask pymongo依赖项,改用自定义代码 (#855) .

  • 文档:全面重写 How to contribute 页。

  • 文档:删除测试页;将其内容与 How to contribute .

  • 文档:添加链接到 Eve course .它由项目作者编写,由Talkpython培训组织。

  • 文档:代码片段现在与python 3兼容(pahaz blinov)。

  • dev:删除并清除一些不必要的代码。

  • dev:在最新更新(5月4日)之后,travis-ci将不会在python 2.6上运行测试。

  • Dev:现在所有分支都在Travis CI上进行了测试。以前,只有“大师”被测试。

  • Dev:修复隐藏的bug tests.methods.post.TestPost 班级。

正在中断更改

  • 不再支持python 2.6和python 3.3 (#1129) .

  • Eve 现在依赖 Cerberus 1.1+ (#776) .它允许许多新的强大的验证和转换功能(如 schema registries )提高了性能,总体而言,更精简了API。它也带来了一些显著的突破性变化。

    • keyschema 重命名为 valueschemapropertyschemakeyschema .

    • 即使补丁的有效负载中没有提供该字段,文档上的补丁如果缺少具有默认值的字段,也会导致设置该值。

    • 的错误消息 keyschema 现在作为字典返回。例子: {{'a_dict': {{'a_field': "value does not match regex '[a-z]+'"}}}} .

    • 类型验证的错误消息为 different now .

    • 将字段与 default = Nonenullable = False (见 patch.py:test_patch_nested_document_nullable_missing

    • 还有更多。有完整的中断更改列表 here. 有关详细的升级说明,请参阅cerberus upgrade notes .对代码库所做更改的深入分析(在编写需要升级的自定义验证器时很有用)可用于 this commit message .

    • 特别感谢Dominik Kellner和Brad P.Crochet为这次升级所做的出色工作。

  • 配置设置 MONGO_AUTHDBNAME 重命名为 MONGO_AUTH_SOURCE 与pymongo的命名一致性。

  • 配置项 MONGO_MAX_POOL_SIZEMONGO_SOCKET_TIMEOUT_MSMONGO_CONNECT_TIMEOUT_MSMONGO_REPLICA_SETMONGO_READ_PREFERENCE 远离的。使用 MONGO_OPTIONSMONGO_URI 相反。

  • 注意 DELETE 在子资源端点上,现在只删除与端点语义匹配的文档。上的删除操作 people/51f63e0838345b6dcd7eabff/invoices 将删除与以下查询匹配的所有文档: {{'contact_id': '51f63e0838345b6dcd7eabff'}} (#1010) .

版本0.7.10

2018年7月15日发布。

  • 修正:pin flask pymongo依赖项以避免与flask pymongo 2崩溃。关闭1172。

版本0.7.9

2018年5月10日发布

  • 不推荐使用python 2.6和python 3.3。关闭1129。

版本0.7.8

2018年2月7日发布

  • 修复:v0.7.7中的中断语法错误

版本0.7.7

2018年2月7日发布

  • 修复:地理查询现在正确支持 $geometry$maxDistance 操作员。关闭1103。

版本0.7.6

2018年1月14日发布

  • 提高查询分析的健壮性。

0.7.5版

2017年12月4日发布

  • 修复:清理过程中未完全遍历查询。因此蒙古人的黑名单可以绕过,允许危险 $where 查询(Moritz Schneider)。

0.7.4版

2017年5月24日发布

  • 修复: post_internal 使用时失败 URL_PREFIXAPI_VERSION .关闭810。

0.7.3版

2017年5月3日发布

  • eve和cerberus现在是合作资助的项目,请参见:https://nicolaiarcci.com/eve-and-cerberus-funding-campaign/

  • 修复:内部资源,启用oplog:a *_internal 方法定义于 OPLOG_METHODS 触发键错误(einar huseby)。

  • 使用官方的雪花石膏主题而不是定制的叉子。

  • 修正:文档字符串打字错误(马丁·福斯)。

  • 医生:解释一下 ALLOW_UNKNOWN 也可以用于公开数据库中的整个文档,而不使用显式的验证模式。地址995。

  • 文档:将eve healthcheck添加到扩展列表(Luis Fernando Gomes)。

0.7.2版

2017年3月6日发布

  • 修复:验证异常返回到 doc_issues['validator exception'] 所有编辑方法(发布、放置、修补)。关闭994。

  • 修正:当有 MONGO_URI 定义它将被使用,无论资源是否使用前缀(pert ja_ek)。

  • Docs:添加代码片段,并举例说明如何实现一个简单的项目列表,该列表同时支持列表级和项目级CRUD操作(JohnChang)。

0.7.1版本

2017年2月14日发布

  • 修复:从EVE0.7开始,“无法在Python3.5.2和3.6上创建一致的方法解析顺序”。关闭984。

  • 文档:用svg bade(sobolev nikita)更新自述文件。

  • 医生:修复拼写错误和尼科拉网站的死链接(多米尼克凯尔纳)。

  • develop 分支已被删除。 master 现在是默认的项目分支。

版本0.7

2017年2月6日发布

  • 新增:添加python 3.6作为受支持的解释器。

  • 新的: OPTIMIZE_PAGINATION_FOR_SPEED .将此设置为 True 以提高分页性能。当优化处于活动状态时,不会对数据库执行计数操作,这在大型集合上可能比较慢。这确实会带来一些后果。首先,不返回文档计数。其次, HATEOAS 不太准确:没有可用的最后一页链接,并且下一页链接始终包括在内,即使是在最后一页。在大型收藏中,打开此功能可以大大提高性能。默认为 False (性能较慢;包括文档计数;准确 HATEOAS )。关闭944和853。

  • 新的: Location 在上返回标题 201 Created 发布响应。如果将包含所创建文档的URI。如果启用了大容量插入,则只返回第一个文档URI。关闭795。

  • 新:漂亮的打印。您可以通过指定一个名为 ?pretty (哈桑·皮德米尔)。

  • 新的: AUTO_COLLAPSE_MULTI_KEYS . 如果设置为 True ,使用同一密钥发送多个值,使用 application/x-www-form-urlencodedmultipart/form-data 内容类型,将自动转换为值列表。与一起使用时 AUTO_CREATE_LISTS 可以使用媒体字段列表。默认为 False .关闭932(Conrad Burchert)。

  • 新的: AUTO_CREATE_LISTS .提交非 list 类型为的字段的类型值 list ,在运行验证程序之前自动创建一个元素列表。默认为 False (康拉德·伯切特)。

  • 新:flask pymongo兼容性 MONGO_CONNECT 配置设置(Massimo scamarcia)。

  • 新增:添加python 3.5作为受支持的解释器(mattias lundberg)。

  • 新的: MONGO_OPTIONS 允许将mongodb参数传递给mongoclient对象。默认为 {{}} (马西莫·斯卡马西亚)。

  • 新:通过设置允许正则表达式 X_DOMAINS_RE 价值观。这允许CORS支持具有动态子域范围的网站。关闭660和974。

  • 新:如果 ENFORCE_IF_MATCH 选项处于活动状态,则所有请求都应包括 If-Match 否则他们将被拒绝(与旧行为相同)。但是,如果 ENFORCE_IF_MATCH 被禁用,然后客户端确定请求是否是有条件的。什么时候? If-Match 包含,则请求是有条件的,否则将不使用条件检查来处理请求。关闭657(Arthur Burkart)。

  • 新建:允许使用etags(nick park)缓存验证旧文档版本。

  • 新:支持弱etags,通常由传输gzip内容的服务器(nick park)应用。

  • 新的: on_oplog_push 当oplog即将更新时,将激发事件。回调接收两个参数: resource (资源名称)和 entries (即将写入的oplog条目列表)。

  • 新:可选 extra 字段可用于oplog条目。可以通过连接到新的 on_oplog_push 事件。

  • 新:oplog audit现在包括用户名或令牌(如果可用)。关闭846。

  • 新的 get_internalgetitem_internal 函数可用于内部get调用。这些方法不受速率限制,不检查身份验证,不引发预请求事件。

  • 新增:添加对MongoDB的支持 DBRef 字段(罗马加夫里洛夫)。

  • 新的: MULTIPART_FORM_FIELDS_AS_JSON .如果您将资源提交为 multipart/form-data 所有表单数据域都将作为字符串提交,这违反了您在资源域上可能拥有的任何验证规则。如果要将所有提交的表单数据视为JSON字符串,则必须激活此设置。关闭806(Stratos Gerakais)。

  • 新增:支持MongoDB聚合框架。终结点可以响应聚合结果。客户端可以通过使用新的 aggregate 选项: aggregate={{"$year": 2015}} .

  • 新:烧瓶视图 (@app.route )现在可以设置 mongo_prefix 通过烧瓶 g 对象: g.mongo_prefix = 'MONGO2' (古斯塔沃·瓦加斯)。

  • 新:查询参数不被EVE识别,现在返回到hateoas urls(mugur rus)中。

  • 新的: OPLOG_CHANGE_METHODS 是一个HTTP方法列表,其中的操作将包括对oplog(mmizotin)的更改。

  • 更改:返回 428 Precondition Required 而不是一般的 403 ForbiddenIf-Match 请求头丢失(arnau orriols)。

  • 更改:etag响应头现在符合RFC7232/2.3,并被双引号包围。关闭794。

  • 修复:更好地定位 settings.py .启动时,如果constructor中省略了settings标志,eve将尝试定位名为settings.py的文件,首先在应用程序文件夹中,然后在应用程序的一个子文件夹中。您可以选择另一个文件名/路径,只需在实例化应用程序时将其作为参数传递即可。如果文件路径是相对的,eve将尝试在sys.path中的一个文件夹中递归地定位它,因此必须确保应用程序根目录已附加到它。例如,在测试环境中,当设置文件不一定位于应用程序的根目录中时,这很有用。关闭820(Mario Kralj)。

  • 修复:版本控制不适用于用户受限的资源访问。关闭967(Kris Lambrechts)

  • 修复: test_create_indexes() 打字错误。关闭960。

  • 修复:在试图修改文档时修复崩溃 _id 关于MongoDB 3.4(Giorgos Margaritis)

  • 修复:改进布尔值的序列化。关闭947(非特殊)。

  • 修复:修复间歇性失败的测试。关闭934(Conrad Burchert)。

  • 修复:多个、快速(在1秒内)和中性(无实际更改)补丁请求不应引发 412 Precondition Failed .关闭920。

  • 修复:在根文档(kris lambrechts)的XML呈现过程中,资源标题没有正确转义。

  • 修正:符合RFC7232/2.3(双引号)的ETAG请求头现在被正确处理。地址794。

  • 修正:来自烧瓶的反预测警告。关闭898(George Lestaris)。

  • 修复:使用anyof、oneof、allof、noneof添加对列表的支持序列化。关闭876(Carles Bruguera)。

  • 修复:更新安全示例片段以匹配当前API(stanislav-filin)。

  • 修复: notifications.py 示例代码段由于缺少 DOMAIN 设置(Stanislav Filin)。

  • 文档:澄清自定义验证器的文档:cerberus依赖项仍然固定在0.9.2版本中。升级到Cerberus 1.0+计划使用v0.8。关闭796。

  • 文档:删除已弃用的 --ditribute virtualenv选项(eugene prikazchikov)。

  • 文档:添加日期和子文档字段过滤示例。关闭924。

  • 文档:将eve-neo4j添加到扩展页面(rodrigo rodriguez)。

  • Docs:强调通过社区扩展支持备用后端。

  • 文档:澄清redis是可选的依赖项(mateusz_oskot)。

  • 将许可证更新到2017年。关闭955。

  • 更新:烧瓶0.12。关闭945、904和963。

  • 更新:现在需要pymongo 3.4。关闭964。

版本0.6.4

2016年6月8日发布

  • 修复:当字段具有 valueschema 那是属于 dict 类型。关闭874。

  • 修复:未正确分析授权头承载令牌。关闭866(James Stewart)。

  • 修正:tokenauth防止base64解码令牌。关闭840。

  • 修复:如果指定了数据源,默认情况下不包括任何字段。关闭842。

  • 文档:简化快速入门指南。关闭868。

  • 文档:修复安装页面中的断开链接。关闭861。

  • 文档:资源配置没有提到 versioning 覆盖。关闭845。

版本0.6.3

2016年3月16日发布

  • 修正:由于0.6.2,不考虑静态投影。关闭837。

0.6.2版

2016年3月14日发布

  • 修复: Access-Control-Allow-Max-Age 实际上应该是 Access-Control-Max-Age .关闭829。

  • 修复: unique 根据软删除文档检查验证规则。关闭831。

  • 修复:Mongo不允许 $ and . 在字段名中。在模式和dict字段中应用此验证。关闭780。

  • 修复:删除“确保(自定义)ID字段的唯一性”功能。地址788。

  • 修复: 409 Conflict 升级到pymongo 3后未报告。关闭680。

  • 修复:软删除文档时,oplog _updated 字段不是删除的时间,而是上一次更新的时间(CyrilBonnard)。

  • 修复:tokenauth。当令牌作为“authorization:”或“authorization:token”头传递时,Werkzeug不将它们识别为有效的授权头,因此 request.authorization 场地是空的(卢卡·迪·加斯佩罗)。

  • 修复: SCHEMA_ENDPOINT coerce 规则。关闭790。

  • SCHEMA_ENDPOINT

  • 修复:不要尝试分析 number 数值为数字时作为字符串的值(Nick Park)。

  • __init__.py ITEM_URL 与默认的_settings.py不匹配。关闭786(拉尔夫·史密斯)。

  • SOFT_DELETEALLOW_UNKNOWN

  • 修复:内部序列化 ofof_type

  • put_internal skip_validationtrue (魏官)。

  • patch_internal 验证程序未在以下时间设置 skip_validationtrue (斯特拉斯·杰拉卡基斯)。

  • 修复:为类型的字段添加缺少的序列化程序 number (Arnau Orriols)。

  • 修复:跳过序列化(arnau orriols)中的任何空值。

  • 修复:何时 SOFT_DELETE datasource.projection 原因A 500 错误。关闭752。

  • 更新:现在需要pymongo 3.2。

  • 更新:现在需要flask pymongo 0.4+。

  • 更新:现在需要Werkzeug高达0.11.4

  • 更改:simplejson v3.8.2现在是必需的。

  • 医生:修正一些打字错误(曼克,帕特里克·迪凯特)。

  • 文档:将缺少的导入添加到身份验证文档(hamdy)

  • 将许可证更新到2016年(Prayag Verma)

0.6版本

2015年10月29日发布

  • 新的: BULK_ENABLED 启用/禁用大容量插入。默认为 True (朱利安·希尔)。

  • 新的: VALIDATE_FILTERS

  • 新的: TRANSPARENT_SCHEMA_RULES 全局启用/禁用架构验证,并且 transparent_schema_rules 每个资源(Florian Rathgeber)。

  • 新的: ALLOW_OVERRIDE_HTTP_METHOD X-HTTP-Method-Override 标题(朱利安·希尔)。

  • 修正:flake8在python 3上失败。关闭747(Simon Sch_Nfeld)。

  • 修复:点域规范化的递归(Matt Tucker)。

  • 修正:子文档字段的依赖项总是返回422。关闭706。

  • post_internal 具有 skpi_validation = True 原因A 422

  • 修复:忽略explict包含的数据源投影。关闭722。

  • Dev:固定速率限制测试,这样它们就不会偶尔失败。

  • dev:确保测试套件打开的连接在拆卸时正确关闭。

  • dev:使用中间件来解析覆盖并最终更新请求方法(julian hille)。

  • dev:通过构建特定版本而不去复制根文档(nick park)来优化版本控制。

  • _client_projection 方法已从Mongo层上移到基本数据层类。它现在可用于其他数据层实现,如eve sqlacalchemy(gon_ri le bouder)。

  • 文档:添加安装依赖项和构建文档的说明(Florian Rathgeber)。

  • 文档:修复贡献指南链接(Florian Rathgeber)。

  • 医生:修正一些打字错误(斯特拉斯·杰拉卡基斯,朱利安·希尔)。

  • 文档:将eve-swager添加到扩展页面。

  • 文档:修复与蒙古人封顶收藏(内森雷诺兹)的断开链接。

版本0.6

2015年9月28日发布

  • 新:支持嵌入简单的objectid字段:现在可以使用 data_relation 统治他们(Gon_ri le Bouder)。

  • 新:支持多层嵌入(Gon_ri le Bouder)。

  • 新的: SCHEMA_ENDPOINT 允许从API端点(nick park)返回资源架构。

  • 新:hateoas链接可以从回调函数(magdas-adrian)中定制。

  • 新的: _INFO :在EVE主页上包含带有给定信息名称的信息部分的字符串值(建议值 _info )。信息部分将包括EVE服务器版本和API版本(如果设置了API U版本)。 None 否则,如果不想公开任何服务器信息。默认为 None (斯特拉斯·杰拉卡基斯)。

  • 新的: id_field 设置用于唯一标识数据库中资源项的字段。本地覆盖 ID_FIELD (多米尼克·凯尔纳)。

  • 新的: UPSERT_ON_PUT 如果文档不存在,则允许在Put上创建文档。默认为 True .详情见下文。

  • 新建:如果文档不存在,则尝试创建文档。URL端点将用作 ID_FIELD 值(如果 ID_FIELD 包含在有效载荷中,将被忽略)。正常验证规则适用。回答将是 201 Created 成功创建。响应负载将与执行到资源端点的单个文档发布所获得的负载相同。设置 UPSET_ON_PUTFalse 禁用此行为,并获取 404 相反。关闭634。

  • 新:Post接受文档,其中包括 ID_FIELD (_id )价值观。这是对自动生成的旧行为的补充 ID_FIELD 当提交的文档不包含时的值。请注意,您可以添加 ID_FIELD 对于模式(以前不允许),您不必这样做,除非其类型与 ObjectId 违约。这意味着在大多数情况下,您可以开始存储 ID_FIELD -立即包含文档,不做任何更改。

  • 新:日志MongoDB和HTTP方法异常(Sebastien Estienne)。

  • 新:增强的日志记录。

  • 新的: VALIDATION_ERROR_AS_LIST .如果 True 即使是单个字段错误也会在列表中返回。默认情况下,单个字段错误作为字符串返回,而多个字段错误捆绑在一个列表中。如果要标准化字段错误输出,请将此设置设置为 True 你总是会得到一份现场问题清单。默认为 False .关闭536。

  • 新的: STANDARD_ERRORS 是将使用规范化API响应格式提供的HTTP代码列表,其中包括提供错误代码和描述的JSON主体。地址586。

  • 新的: anyof 验证规则允许您列出要验证的多组规则。

  • 新的: alloff 验证规则,与 anyof 但列表中的所有规则集合都必须验证。

  • 新的: noneof 验证规则。等同于 anyof 但它不需要列表中的规则集合进行验证。

  • 新的: oneof 验证规则。等同于 anyof 但列表中只有一个规则集合可以验证。

  • 新的: valueschema 验证规则替换了现在已弃用的 keyschema 规则。

  • 新的: propertyschema 是对立面 valueschema 它验证了dict的键。

  • 新的: coerce 验证规则。类型强制允许您在任何其他验证程序运行之前对值应用可调用。

  • 新的: MONGO_AUTHDBNAME 允许指定MongoDB授权数据库。默认为 None (大卫·伍德)。

  • 新的: remove Mongo数据层中的方法现在返回删除状态或 None 如果写确认被禁用(Mayur Dhamanwala)。

  • 新的: unique_to_user 验证规则允许验证字段值对用户是否唯一。不同的用户可以为字段共享相同的值。当在端点上启用用户限制的资源访问时,这很有用。如果URRA在端点上不活动,则此规则的行为如下 unique .关闭646。

  • 新的: MEDIA_BASE_URL 允许设置自定义基URL,以便在 RETURN_MEDIA_AS_URL 活跃(Henrique Barroso)。

  • 新的: SOFT_DELETE 设置为时启用软删除 True (尼克·帕克)

  • 新的: mongo_indexes 允许在应用程序启动时创建MongoDB索引(pau freixes)。

  • 新:客户端可以选择退出默认嵌入字段: ?embedded={{"author":0}} 将导致嵌入的作者不包含在响应负载中。(托比亚斯·贝茨)

  • 新:CORS:支持 X-ALLOW-CREDENTIALS (塞浦路斯潘尼尔)

  • 新功能:支持Post、Patch和Put方法中的点标记。请注意,对于patch和put,即使在一个字段上使用点符号,也会替换整个子文档。因此,如果存储此文档:

    {"name": "john", "location": {"city": "New York", "address": "address"}}

    像这样的补丁:

    {"location.city": "Boston"}

    (完全等同于:)

    {"location": {"city": "a nested city"}}

    将文档更新为:

    {"name": "john", "location": {"city": "Boston"}}

  • 新增:JSONP支持(Tim Jacobi.)

  • 新增:支持多个MongoDB数据库和/或服务器。

    • mongo_prefix 资源设置允许覆盖默认值 MONGO 从配置中检索MongoDB设置时使用的前缀。例如,设置资源 mongo_prefixMONGO2 从设置文件中配置了该前缀的数据库中读/写 (MONGO2_HOSTMONGO2_DBNAME 等)

    • set_mongo_prefix()get_mongo_prefix() 已添加到 BasicAuth 类和派生。这些可以用于根据执行请求的令牌/客户端任意设置目标数据库。

    为了不降低性能,数据库连接被缓存。此外,此更改只影响MongoDB引擎,因此当前针对其他数据库的扩展不需要更新(但它们不会继承此功能)。

  • 新建:启用 on_pre_GET 钩头请求(丹尼尔·莱特金)。

  • 新建:添加 X-Total-Count 收集GET/HEAD请求的标题(Daniel Lytkin.)。

  • 新的: RETURN_MEDIA_AS_URLMEDIA_ENDPOINTMEDIA_URL 允许在文档媒体字段(Daniel Lytkin)中返回URL时在专用媒体端点处提供文件。

  • 新的: etag_ignore_fields .具有属于架构的字段列表的资源设置,这些字段将不用于计算etag值。默认为 None (奥利维尔·卡尔·雷尔)

  • 更改:当hateoas关闭时,主端点将响应 200 OK 而不是 404 Not Found (斯特拉斯·杰拉卡基斯)。

  • 更改:Put不返回 404 如果文档URL不存在。它将尝试创建文档。设置 UPSET_ON_PUTFalse 禁用此行为并获取 404 相反。

  • 变化:包括 ID_FIELD 与原始值不同的字段将获得 400 Bad Request 以及消息正文中字段不可变的说明。以前,它会得到一个 unknown field 验证错误。

  • dev:改进大型版本文档的get perfomance(nick park.)

  • 德夫:那个 MediaStorage 现在,基类接受活动资源作为其方法的参数。这允许数据层避免使用flask请求对象来确定活动资源。为了保持向后兼容性, resource 参数默认为 None (马格达斯·阿德里安)。

  • dev:mongo数据层不再依赖flask请求对象。如果 resource 论证是 None .关闭632。(马格达斯·阿德里安)。

  • 修复:当 datasource 使用(Magdas Adrian)。

  • 修复:更新 serialize 优雅地处理dict类型字段(nick park)中的非字典值。

  • 修复:对 updates 参数,通过连接到 on_updated 事件,未持久保存到数据库(Magdas Adrian)。关闭682。

  • 修复:应用于 updates 参数`` on updated``返回整个更新的文档。以前,它只返回随请求发送的更新。关闭682。

  • 修复:替换cerberus规则 keyschema ,现在已弃用,新的 propertyschema (朱利安·希尔)。

  • 修正:一些错误消息不再从调试模式中过滤出来,因为它们对用户很有用,并且不会泄漏信息。关闭671(Sebastien Estienne)。

  • 修复:加强内容类型的头处理,以避免丢失时可能发生的崩溃(Sebastien Estienne)。

  • 修复:某些架构错误没有被报告为架构错误异常。返回了更通用的“域丢失或错误”消息。

  • 修复:当对具有自定义ID_字段的资源启用版本控制时,版本控制文档将从版本控制文档继承其ID,对文档进行任何更新都将导致重复的Eyerror(matthieu prat)。

  • 修复:筛选验证无法验证包含列表数据类型值的查询选择器,该值不是子查询的列表。见674(Matthieu Prat)。

  • 修复: _validate_dependencies 总是回报 None .

  • 修复: 412 Precondition Failed 不返回JSON主体。关闭661。

  • 修复: embedded_fields 可以指向来自其他嵌入文档的字段。例如, ['a.b.c', 'a.b', 'a'] (Gon_ri le Bouder)。

  • 修复:添加Put方法(Olivier Poitrey)的子资源解析处理。

  • 修复: dependencies 当目标字段碰巧也具有 default 价值。

  • 修正:根据RFC2617,分隔符应该是(=)而不是(:)。这至少导致chrome不提示用户提供凭据,甚至在凭据位于URL(samuli tuomola)中时也不发送授权头。

  • 修复:确保 unique 验证规则在HTTP方法之间是一致的。字段值在数据源中必须是唯一的,不管创建它的用户是谁。关闭646。

  • 修复:如果 OPLOG_ENDPOINTNone .关闭628。

  • 修复:不覆盖 ID_FIELD 因为它不是子资源。详情请参见641(奥利维尔·波特雷)。

  • 修复:使用非标准JSON序列化程序时ETAG计算崩溃(Kevin Roy)。

  • 修复:删除mongo operators列表中的重复项。关闭619。

  • 修复:版本控制:当 _latest_version 版本化文档中的更改(Nick Park.)

  • 修复:帐户管理教程(xgddsg)中的代码段。

  • 修复: MONGO_REPLICA_SET 文档中还添加了其他重要的烧瓶pymongo设置。关闭615。

  • 修复:列表的序列化(Nick Park.)

  • 修复:确保 original 期间未修改 PATCH .关闭611(Petr Ja_ek.)

  • 修复:工艺路线参数在验证前应用于新文档。这样可以确保在验证具有必需字段的文档之前填充它们。地址。(马修·埃里森)

  • 修复: GridFSMediaStorage 不保存文件名。关闭605(Sam Luu)。

  • 修复:加强geojson验证(joakim uddholm.)

  • 修正:地理点坐标不接受整数。关闭591(Joakim Uddholm.)

  • 修复:启用oplog会使put返回错误的etag。关闭590。

  • 更新:现在需要Cerberus 0.9.2。

  • 更新:现在需要pymongo 2.8(反过来支持mongodb 3.0)

0.5.3版

2015年3月17日发布。

  • 修复:支持Cerberus 0.8.1。

  • 修复:不要阻止第一个字段序列化异常。关闭568。

  • 修复:忽略中的只读字段 PUT 与存储的文档相比,请求的值没有更改(bjorn andersson)。

  • 文档:替换 file 具有 media 类型。关闭566。

0.5.2版本

2015年2月23日发布。代号:“朱利亚”。

  • 修复:加强数据库并发性检查。见561(奥利维尔·卡尔·雷尔)

  • 修复: PATCHPUT 不包括ETAG标题(Marcus Cobden)

  • 修复:当传递可调用文件时,端点级身份验证崩溃。关闭558。

  • 修复:序列化 keyschema 字段与 objetid 价值观。关闭525。

  • 修正:模式规则中的错误可能导致验证任意有效负载(EmmanuelLeblond)。

  • fix:string类型的id字段中的objectid值(jaroslav seman_k.)

  • 修复:用户限制的资源访问不适用于HMAC身份验证类。

  • 修复:崩溃时间 embedded 用于缺少字段(Emmanuel Leblond)的子文档。

  • 文档:添加 MONGO_URI 作为其他MongoDB连接选项的替代方案。关闭551。

  • 更改:现在需要Werkzeug 0.10.1。

  • 更改: DataLayer API方法 update()replace() 有一个新的 original 参数。

0.5.1版本

2015年1月16日发布。

  • 修复:与值检查的依赖关系似乎已中断(547)。

  • 修正:文件打字错误(Marc Abramowitz)

  • 修复:表达式中带有冒号的regex的漂亮URL(magdas-adrian)。

版本0.5

2015年1月12日发布。

  • 新:操作日志(http://python eve.org/features operations log.)

  • 新增:geojson(http://python eve.org/features.html geojson)(胡安·马德加)

  • 新增:内部资源(http://python eve.org/features internal resources)(magdas adrian)

  • 新:使用CORS时支持多个来源(Josh Villbrandt,532)。

  • 新:存在时,从hateoas URL中删除regex。你现在得到 games/<game_id>/images 你以前会得到什么 games/<regex('[a-f0-9]{{24}}'):game_id>/images )。关闭466。

  • 新的: JSON_SORT_KEYS 启用JSON键排序(Matt Creenan)。

  • 新建:将当前查询字符串添加到包含多个文档的响应的自链接中。关闭464(Jen Montes)。

  • 新建:启用文档版本控制时,添加 ?version=<version_num> 讨厌自我联系。还为添加分页链接 ?version=all?version=diffs 当数字超过最大结果时请求。部分地址475(Jen Montes)。

  • 新的: QUERY_WHERE 允许为筛选器设置查询参数键。默认为 where .

  • 新的: QUERY_SORT 允许设置查询参数键进行排序。默认为 sort .

  • 新的: QUERY_PAGE 允许为分页设置查询参数键。默认为 page .

  • 新的: QUERY_PROJECTION 允许为投影设置查询参数键。默认为 projection .

  • 新的: QUERY_MAX_RESULTS 允许为最大结果设置查询参数键。默认为 max_results .

  • 新的: QUERY_EMBEDDED 允许设置查询参数键嵌入文档。默认为 embedded .

  • 新:火灾 on_fetched 的事件 version=all 请求(Jen Montes)。

  • 新:支持CORS Access-Control-Expose-Headers (克里斯汀·亨克)。

  • 新的: post_internal() 可用于内部通话。此方法不受速率限制,不检查身份验证,不引发预请求事件(Magdas Adrian)。

  • 新的: put_internal() 可用于内部看跌电话。此方法不受速率限制,不检查身份验证,不引发预请求事件(Kevin Funk)。

  • 新的: patch_internal() 可用于内部补丁呼叫。此方法不受速率限制,不检查身份验证,不引发预请求事件(Kevin Funk)。

  • 新的: delete_internal() 可用于内部删除呼叫。此方法不受速率限制,不检查身份验证,不引发预请求事件(Kevin Funk)。

  • 新建:向添加选项 _internal 方法跳过有效载荷验证(Olivier Poitrey)。

  • 新:查询中以逗号分隔的排序语法。MongoDB数据层现在还支持如下查询: ?sort=lastname,-age .地址443。

  • 新:添加额外的4xx响应代码以正确处理。只有 405 不允许使用方法, 406 不可接受, 409 冲突,以及 410 已将“消失”添加到列表中(Kurt Doherty)。

  • 新:为整数和浮点类型添加序列化程序(grisha k.)

  • 新:dev-requirements.txt添加到repo中。

  • 新建:通过引用嵌入位于任何子文档中的文档。例如,查询 embedded={{"user.friends":1}} 将返回嵌入“用户”及其所有“朋友”的文档,但仅当 user 是子文档,并且 friends 是引用列表(dmitry anoshin)。

  • 新建:允许MongoEngine正确处理光标计数(Johan Blomberg)

  • 新的: ALLOW_UNKNOWN 允许读取未知字段,而不仅仅是像以前那样写入。关闭397和250。

  • 新的: VALIDATION_ERROR_STATUS 允许设置用于验证错误的HTTP状态代码。默认为 422 (奥利维尔·波特雷)。

  • 新建:支持子文档投影。修复182(Olivier Poitrey)。

  • 新:返回 409 Conflict 关于Pymogo DuplicateKeyError 对于 POST 请求,正如已经发生的 PUT 请求(Matt Creenan,537)

  • 更改: DELETE 收益率 204 NoContent 成功删除时。

  • 更改:服务器名称已删除,因为不再需要它。

  • 更改:由于不再需要URL协议,因此删除了该协议。

  • 更改:hateoas链接现在是相对于api根的。关闭398 401。

  • 更改:如果修改自已在资源(集合)终结点上禁用。相同的功能可用于 ?where={{"_udpated": {{"$gt": "<RFC1123 date>"}}}} 请求。oplog还允许检索在任何端点发生的详细更改,包括已删除的文档。关闭334。

  • 更改:ETags现在与文档一起保留。这可以确保ETags在查询之间保持一致,即使在发出投影查询时也是如此。请注意,ETags只能与通过API方法(post/put/patch)创建和/或编辑的新文档一起存储。通过其他方式插入的文档以及与v0.4及以下版本一起存储的文档将像以前一样继续工作:它们的etags将被动态计算,并且在发出投影查询时,您仍然会得到不一致的etags。关闭369。

  • 更改:XML项、元节点和链接节点现在已排序。关闭441。

  • 更改: put 的方法签名 MediaStorage 基类已更新。 filemame 现在是可选的。关闭414。

  • 更改:CORS行为与浏览器(chrome)兼容。如果所说的内容在x_域中被白列出来,那么eve现在正在回送原始头的内容。这也更安全,因为它避免暴露内部服务器配置。关闭408。这项承诺是在2014年飞往欧洲的一次航班上被精心策划的。

  • 更改:指定依赖包版本的范围。#379(詹姆斯·斯图尔特)。

  • 更改:现在需要Cerberus 0.8。

  • 更改:现在需要pymongo v2.7.2。

  • 更改:simplejson v3.6.5现在是必需的。

  • 更改:更新 dev-requirements.txt 最新可用工具。

  • 修复:添加 README.rstMANIFEST.in (尼尔·多尼根)

  • 修复: LICENSE 变量在 setup.py 应该是“短字符串”。关闭540(Niall Donegan.)

  • 修复: PATCH 在原值为的字段上 None (马库斯·科布登,534)。

  • 修复:修复setup.py中不可能的版本范围(Marcus Cobden,531)。

  • 修复:扩展角色列表、破坏授权的错误(Mikael Berg,527)

  • 修复: PATCH 在子文档字段上不再覆盖整个子文档。关闭519。

  • 修复:添加了对字段属性和类型列表(jorge morales)验证的支持。

  • 修复:修复一个带有整型和浮点型的序列化错误,当值为0时(Olivier Poitrey)。

  • 修复:自定义ID字段教程:如果使用自定义ID字段,那么mongodb/eve将无法像使用 ObjectId 默认类型。关闭511。

  • 修复:如果省略,则报告缺少具有默认值的依赖项。关闭353。

  • 修复:如果依赖字段不是更新的一部分,则依赖项在修补程序上总是失败。#363年。

  • 修复:客户预测工作时间 allow_unknown 处于活动状态。关闭497。

  • 修复:当 allow_unknown 处于活动状态。关闭497。

  • 修正:正确序列化可以为空的浮点数和整数。关闭469。

  • 修复: _mongotize() 将非对象化字符串(但不是Unicode)转换为对象化。关闭508(或Neeman)。

  • 修复:修复dict中只读字段的验证。关闭474(Arnau Orriols)。

  • 修复:父链接和集合链接遵循475(jen montes)中描述的方案。

  • 修复:忽略中的只读字段 PATCH 与存储的文档相比,请求的值没有更改。关闭479。

  • 修复:允许 EVE_SETTINGS envvar仅供使用。以前,总是需要工作目录中的设置文件。关闭461。

  • 修复:尝试将可空媒体字段设置为空时出现异常(Daniel Lytkin)

  • 修复:添加缺少 $options$list MongoDB操作员进入允许列表(Jaroslav Seman_k)。

  • 修复:在缺少嵌入媒体时获取文档。如果您试图嵌入一个包含媒体字段的文档,而该文档已被删除,则会得到一个错误(Petr Ja_ek)。

  • 修复:修复restful帐户管理教程(ashley roach)中的其他查找regex。

  • 修复: utils.weak_date 始终返回RFC-1123日期(Petr Ja_ek)。

  • 修复:无法使用自定义ID(非objectid)嵌入资源。关闭427。

  • 修复:不要遵循HTTP头的日期格式。关闭429(Olivier Poitrey)。

  • 修复:修复资源级别版本控制的应用程序初始化409(sebasti_n magr_)。

  • 修复:尝试在文档中缺少的字段上使用嵌入时出现键错误。它在319年早些时候被修复,但在新的嵌入机制(丹尼尔·利特金)之后又回来了。

  • 修复:支持将字符串列表作为字段的默认值(Hansotronic)。

  • 修复:即使在嵌入的文档中,媒体字段也会正确返回。关闭305。

  • 修复:域配置中的auth可以是可调用的,也可以是类实例(Gino Zhang)。

  • 修复:架构定义:列表的默认值为[]会导致indexerror。关闭417。

  • 修复:关闭setup.py中的文件句柄(harro van der klauw)

  • 修正:查询一个集合应该总是返回分页信息(即使没有返回数据)。关闭415。

  • 修复:递归地验证整个查询字符串。

  • 修正:如果数据层支持允许的查询操作符列表,那么在验证查询字符串时要考虑它们。关闭388。

  • 修复:如果使用不支持的查询运算符,则使用400中止。关闭387。

  • 修复:如果在查询中使用黑名单MongoDB运算符(调试模式),则返回错误。

  • 修复:无效的排序语法引发500而不是400。地址378。

  • 修复:修复序列化 type 架构中缺少。#404(Jaroslav Seman_k)。

  • 修复:当放置或修补媒体字段时,它们将无法根据需要正确替换(Stanislav Heller)。

  • 修复: test_get_sort_disabled 偶尔失败。

  • 修复:带有空数组的POST会导致服务器崩溃。现在返回一个400错误isntead,并确保服务器不会在mongo无效操作(olivier poitrey)的情况下崩溃。

  • 修复:在预更新事件中修补并放置don't respect flask.abort()。关闭395(克里斯托弗·拉森)。

  • 修正:验证keyschema规则将导致0.4之后的类型错误。关闭pyeve/cerberus 48。

  • 修复:如果客户端投影不是dict 390(奥利维尔·波特雷),则崩溃。

  • 修复:服务器崩溃,以防无效的“where”语法386(Olivier Poitrey)。

版本0.4

2014年6月20日发布。

  • [new] 现在您可以启动应用程序而不定义任何资源并使用 app.register_resource 稍后根据需要(Petr Ja_ek)。

  • [new] 数据层现在可以在请求上下文之外使用,例如在没有请求上下文的芹菜任务中(PetrJa_ek)。

  • [new] [改变] 添加分页信息以获取结果,无论恨的状态如何。关闭(Olivier Poitrey)。

  • [new] 确保所有错误都返回可分析的主体(JSON或XML)。关闭365(Olivier Poitrey)。

  • [new] 如果与架构匹配,则将子请求路由的参数应用于创建的文档,例如在 /people/1234…/invoices 将设置 contact_id 字段到1234…因此创建的发票自动与父资源(Olivier Poitrey)关联。

  • [new] 允许从DB挂钩(Olivier Poitrey)中抛出更多的HTTP错误(403和404)。

  • [new] ALLOWED_READ_ROLES .允许的列表 roles 对于使用get和options方法的资源端点(Olivier Poitrey)。

  • [new] ALLOWED_WRITE_ROLES .允许的列表 roles 对于具有POST、PUT和DELETE方法的资源端点(Olivier Poitrey)。

  • [new] ALLOWED_ITEM_READ_ROLES .允许的列表 roles 对于带有get和options方法的项端点(Olivier Poitrey)。

  • [new] ALLOWED_ITEM_WRITE_ROLES .允许的列表 roles 对于具有Put、Patch和Delete方法的项端点(Olivier Poitrey)。

  • [new] “依赖项”验证规则。

  • [new] “keyschema”验证规则。

  • [new] “regex”验证规则。

  • [new] “set”作为核心数据类型。

  • [new] “min”和“max”现在也适用于浮点数和数字。

  • [new] 文件存储。 EXTENDED_MEDIA_INFO 允许从文件上载驱动程序(Ben Demaree)转发元字段列表(文件属性)。

  • [new] 现在支持python 3.4。

  • [new] 支持具有多个数据级别的文档中的默认值(JavierGonel)。

  • [new] 能够以写响应方式发送整个文档。 BANDWITH_SAVER 又称相干模式(乔希·维尔勃兰特)。

  • [new] on_pre_<METHOD> 事件暴露 lookup 允许在资源和项目端点上设置动态数据库查找的字典。

  • [new] 在pymongo duplicatekeyerror上返回400响应,如果调试模式为on(boosh),则返回异常消息。

  • [new] Pypy正式支持和测试(Javier Gonel)。

  • [new] 毒物支持(Javier Gonel)。

  • [new] 发布数据库事件(Javier Gonel)。地址272。

  • [new] 版本化文档(Josh Villbrandt)。关闭224。

  • [new] python trove分类器已添加到setup.py。

  • [new] 客户机预测也在项目端点执行。

  • [new] 验证ID_字段未设置为资源 auth_field .地址266。

  • [new] URL_PROTOCOL 定义生成hateoas链接时使用的HTTP协议。默认为 '' 对于相对路径(初级Vidotti)。

  • [new] on_delete_itemon_deleted_item 在发送到文档终结点的删除请求上引发。地址232。

  • [new] on_delete_resourceon_deleted_resource 在发送到资源终结点的删除请求上引发。地址232。

  • [new] on_update 将在数据库上更新文档时,在修补程序请求上引发。地址232。

  • [new] on_replace 当将要替换数据库中的文档时,在Put请求上引发。地址232。

  • [new] auth 构造函数参数接受类实例或可调用。关闭248。

  • [改变] 现在需要Cerberus 0.7.2。

  • [改变] 现在需要Jinja2 2.7.3。

  • [改变] 现在需要Werkzeug 0.9.6。

  • [改变] 现在需要simplejson 3.5.2。

  • [改变] 现在需要危险的0.24。地址378。

  • [改变] 现在需要事件0.2.1。

  • [改变] 现在需要MarkupSafe 0.23。

  • [改变] 对于批量插入和非批量插入,响应状态现在总是201(当一切正常时)或400(当出现问题时)。对于批量插入,如果至少有一个文档没有验证,则整个请求将被拒绝,并且没有任何文档插入到数据库中。另外,此提交采用与集合相同的响应格式:响应始终是带有 _status 在它的根和最终 _error 对象if _statusERR 遵守366。文档状态存储在 _items 菲尔德(奥利维尔·波特雷)。

  • [改变] 回调获取整个JSON响应 on_fetched .这允许回调函数更改整个有效负载,即使启用了hateoas,并且 _items_links 元场存在。

  • [改变] on_insert 不再在Put请求中提出(替换为上述内容) on_replace

  • [改变] auth.request_auth_value 不再是了。是的。见下文。

  • [改变] auth.set_request_auth_value() 允许设置 auth_field 当前请求的值。

  • [改变] auth.get_request_auth_value() 允许检索 auth_field 当前请求的值。

  • [改变] on_update(ed)on_replace(ed) 现在,回调将同时接收原始文档和更新(Jaroslav Seman_k)。

  • [改变] 查看事件名称(Javier Gonel)。

  • [fix] 如果启用CORS,则返回500而不是404。关闭381。

  • [fix] 当一个或多个文档缺少id_字段时,在资源终结点上的get请求崩溃。关闭。

  • [fix] 无法将可为空的ObjectId类型字段更改为包含空。关闭341。

  • [fix] 即使为端点配置了regex,也不喜欢将OA链接作为业务单元值。

  • [fix] 文档改进(Jen Montes)。

  • [fix] 当特定文档(jaroslav seman_k)中缺少架构中指定为可嵌入的字段时,引发keyError异常。

  • [fix] 头请求测试偶尔会失败。见316。

  • [改变] Pymogo 2.7.1现在是必需的。

  • [fix] 自动字段,如 DATE_CREATDDATE_CREATED 在客户预测中得到正确处理(Josh Villbrandt)。关闭282。

  • [fix] 使codebase符合最新的pep8/flake8版本(javier gonel)。

  • [fix] 如果有媒体字段,并将该字段的数据源投影设置为0,则不会删除媒体。关闭284。

  • [fix] 测试清理(Javier Gonel)。

  • [fix] 测试现在在任何系统上运行,无需设置 ulimit 更高的值(Javier Gonel)。

  • [fix] 媒体文件:不要试图删除不存在的字段(泰勒布朗)。

  • [fix] 构建时偶尔出现键错误 _media 助手听写。见271(亚历山大·亨多夫)。

  • [fix] If-Modified-Since 设置数据源筛选器时的错误行为。关闭258。

  • [fix] 无法序列化听写列表。关闭265和244。

  • [fix] HATEOAS 项目链接现在是一致的实际端点URL,即使在URL中使用自然不变的键(Junior Vidotti)。关闭256。

  • [fix] 已替换 ID_FIELD 通过 item_lookup_field 在自链接上。项目查找字段将默认为 ID_FIELD 如果为空。

版本0.3

2014年2月14日发布。

  • [fix] 子文件的序列化(Hannes Tiede)。关闭244。

  • [new] X_MAX_AGE 允许配置CORS访问控制最大期限(David Buchmann)。

  • [fix] GET 具有 If-Modified-Since 如果资源为空,则列表端点返回错误的304。关闭243。

  • [改变] POST 将返回 201 Created 如果至少有一份文件被接受插入; 200 OK 否则(表示请求已被接受和处理)。分析响应负载以检查是否有任何文档未通过验证仍然是客户端的职责。地址201 202 215。

  • [new] number 数据类型。允许整数和浮点数都作为字段值。

  • [fix] 使用_id以外的主键。关闭237。

  • [fix] 为添加测试 PUT 当用户限制的资源访问处于活动状态时。

  • [fix] 如果设置了资源级身份验证,则未设置身份验证字段。修复231。

  • [fix] Ratelimit检查偶尔失败,返回429(John Deng)。

  • [改变] 现在需要Jinja2 2.7.2。

  • [new] 媒体文件(图像、PDF等)可以上载为 media 文档字段。当请求文档时,最终的媒体文件将作为base64字符串返回。上传通过 POSTPUTPATCH 使用 multipart/form-data 内容类型。对于optmized性能,默认情况下文件存储在gridfs中,但是自定义 MediaStorage 可以提供类来支持其他存储系统。客户机和API维护人员可以利用投影功能从请求中包括/排除媒体字段。例如,请求 /url/<id>?projection={{"image": 0}} 将返回不带图像字段的文档。另外,在设置资源时 datasource 可以从标准响应中显式排除媒体字段(客户机需要使用 ?projection={{"image": 1}}

  • [new] media 架构字段的类型。

  • [new] media 应用程序参数。允许指定用于存储媒体文件的媒体存储类。默认为 GridFSMediaStorage .

  • [new] GridFSMediaStorage 类。将文件存储到网格中。

  • [new] MediaStorage 类提供了用于存储文件的标准化API,以及一组默认行为,所有其他存储系统都可以根据需要继承或重写这些行为。

  • [new] file 资源架构的数据类型支持和验证。

  • [new] multipart/form-data 请求现在支持内容类型。

  • [fix] 字段排除 (?projection={{"fieldname": 0}} )现在在客户预测中得到了支持。记住,MongoDB仍然不支持混合字段包含和排除。

  • [fix] URL_PREFIXAPI_VERSION 在Hatoeas链接中正确报告。

  • [fix] DELETE 在子资源上,只应删除父级引用的文档。关闭212。

  • [fix] DELETE 在资源端点上接受用户限制的资源访问。关闭213。

  • [new] JSON 允许启用/禁用JSON响应。默认为 True (启用JSON)。

  • [new] XML 允许启用/禁用XML响应。默认为 True (启用XML)。

  • [fix] XML适当荣誉 _LINKS_ITEMS 设置。

  • [fix] 当资源架构为空时返回所有文档字段。

  • [new] pytest.ini用于pytest支持。

  • [fix] 所有测试现在都应该用鼻子和pytest运行。关闭209。

  • [new] query_objectid_as_string 资源设置。默认为 False .地址207。

  • [new] ETAG 允许自定义etag字段。默认为 _etag .

  • [改变] etag 现在是 _etag 在所有默认响应有效负载中(见上文)。

  • [改变] STATUS 默认为“状态”。

  • [改变] ISSUES 默认为“问题”。

  • [改变] DATE_CREATED 默认为“已创建”。通过运行升级现有集合 db.<collection>.update({{}}, {{ $rename: {{ "created": "_created" }} }}, {{ multi: true }}) 在蒙古壳里。如果字段上存在索引,请将其删除,然后使用新字段名创建一个新索引。

  • [改变] LAST_UPDATED 默认为“已更新”。通过运行升级现有集合 db.<collection>.update({{}}, {{ $rename: {{ "updated": "_updated" }} }}, {{ multi: true }}) 在蒙古壳里。如果字段上存在索引,请将其删除,然后使用新字段名创建一个新索引。

  • [改变] 排除 etag 如果禁用并发控制,则同时来自响应负载和头 (IF_MATCH = False )。关闭205。

  • [fix] 习俗 ID_FIELD 在更新/插入方法时失败。修复203(Jaroslav Seman_k)。

  • [改变] GET:如果由于存在头文件而进行了修改,则不会根据HTTP规范发送任何文件(304)或所有文件(200)。原始行为可以通过以下方式实现: /resource?where={{"updated":{{"$gt":"if-modified-since-date"}}}} (乔希·维尔勃兰特)。

  • [改变] 验证错误现在报告为一个字典,有问题的字段作为键,问题描述作为值。

  • [改变] 现在需要Cerberus v0.6。

版本0.2

2013年11月30日发布。

  • [new] 子资源。现在可以配置端点,如: /companies/<company_id>/invoices .另外,对应的项目端点,例如 /companies/<company_id>/invoices/<invoice_id> ,可用。允许对这些端点执行所有CRUD操作。关闭156。

  • [new] resource_title 允许自定义终结点标题(hateoas)。

  • [new] [dev] extra 光标属性(如果存在)将添加到 GET 响应(具有相同的键)。EVE扩展可以使用此功能将专有数据注入响应流(Petr Ja_ek)。

  • [new] IF_MATCH 允许在编辑、替换和删除请求时禁用对etag匹配项的检查。如果禁用,没有if-match头的请求将得到满足,不会返回403错误。默认为真(默认启用)。

  • [new] LINKS 允许自定义链接字段。默认为“链接”。

  • [new] ITEMS 允许自定义项目字段。默认为“_items”。

  • [new] STATUS 允许自定义状态字段。默认为“状态”。

  • [new] ISSUES 允许自定义问题字段。默认为“问题”。

  • [new] 处理自定义ID字段教程。

  • [new] 一个新的 json_encoder 初始化参数可用。它允许将自定义jsonEncoder或eve.io.basejsonEncoder传递给eve实例。

  • [new] 一个新的 url_converters 初始化参数可用。它允许将自定义flask url转换器传递给eve构造函数。

  • [new] ID_字段现在可以是任意类型,而不仅仅是ObjectID。感谢开尔文·哈蒙德为这件事做出的贡献。关闭136。

  • [new] pre_<method>pre_<method>_<resource> 事件挂钩现在可用。它们在收到请求时和处理请求之前被提出。所涉及的资源和flask请求对象将返回到回调函数(dccrazyboy)。

  • [new] embedded_fields 在选定文档字段列表上激活默认的嵌入资源序列化。客户端的最终嵌入请求将与默认嵌入一起处理。为了使默认嵌入正常工作,必须将字段定义为可嵌入,并且必须为资源激活嵌入(在Christoph Witzany的帮助下)。

  • [new] default_sort 选项添加到 datasource 资源设置。它允许为端点设置默认排序。默认排序将被包含 ?sort 查询字符串中的参数(在Christoph Witzany的帮助下)。

  • [new] 现在,您可以选择以Python字典的形式提供自定义设置。

  • [new] 新方法 Eve.register_resource() 用于在EVE对象初始化后注册新资源。这是所有ORM/ODM扩展(Stanislav Heller)的更简单初始化API所必需的。

  • [改变] 依靠flask端点将URL映射到资源。

  • [改变] 为了更好地与新的一致性 pre_<method> 钩子, on_<method> 事件挂钩已重命名为 on_post_<method> .

  • [改变] 现在可以在端点级别设置自定义身份验证类。设置后,端点级身份验证类将覆盖最终的全局级身份验证类。认证文件已相应地更新(并进行了大幅修改)。关闭89。

  • [改变] JSON编码现在在数据层级别处理,允许专门的、粒度化的、数据感知的编码。此外,由于JSON编码器现在是一个类属性,扩展可以用它们自己的实现替换预先定义的数据层编码器。关闭102。

  • [fix] 更新了hmac示例和文档,使之与python 2.7.3中的新hmac保持一致,后者只接受字节字符串。关闭199。

  • [fix] 在XML响应中正确地转义叶值(Florian Rathgeber)。

  • [fix] 具有默认值的只读字段将在POST和PUT方法上触发验证错误。

版本0.1.1

2013年10月31日发布。

  • 当向底层数据层(xavi-cubillas)发出删除命令时,delete现在使用原始文档ID_字段。

  • 嵌入的资源序列化也可在项终结点处使用 (/invoices/<id>/?embedded={{'person':1}}

  • collection (在设置数据关系时使用,请参见嵌入资源序列化)已重命名为 resource 为了避免在EVE模式和基础MongoDB集合之间混淆。

  • 嵌套终结点。具有深路径的端点,如 /contacts/overseas 现在可以与顶级端点结合使用 (/contacts )。端点是完全独立的:每个端点都允许项目查找 (/contacts/<id>contacts/overseas/<id> )以及不同的访问方法。以前,虽然您可能有复杂的URL,但您无法使嵌套的端点正常工作。

  • 现在支持pymongo 2.6.3。

  • 项目ID包装已从post/patch/put请求和响应中删除。单文档插入/编辑请求现在只需提交相关文档即可执行。批量插入请求通过提交文档列表来执行。对批量请求的响应是一个列表本身,其中每个列表项都包含相应请求文档的状态。请注意,这是一个突破性的变化。还要注意,当请求内容类型为 x-www-form-urlencoded ,执行单个文档插入。关闭139。

  • 在post/patch/put方法上正确序列化了objectid。

  • 查询嵌套文档中的objectid和datetime值。

  • auth.user_id 重命名为 auth.request_auth_value 为了更好地与 auth_field 设置。关闭132(Ryan Shea)。

  • 与flask的行为相同,server_name现在默认为none。它允许在可能改变IP的远程机器上进行更容易的开发(RonanDelacroix)。

  • CORS支持不适用于 additional_lookup 网址(Petr Ja_ek.)

  • 可同化到的“默认”字段值 None (0,无,“”)将被忽略。

  • 如果没有auth类,post-and-put将失败400 auth_field 已为资源设置。

  • 修复flaskapp.validate_schema()(roy smith)中异常消息中字符串参数的顺序。

版本0.1

2013年9月30日发布。

  • PUT 方法完全替换文档,同时保持相同的唯一标识符。关闭96。

  • 嵌入的资源序列化。如果一个文档域引用了另一个资源中的文档,客户机可以请求将引用的文档嵌入到请求的文档中(Bryan Coat)。关闭68。

  • 现在支持“无尾随斜杠”URL。关闭118。

  • hateoas现在是可选的,可以在全局和资源级别禁用。

  • X-HTTP-Method-Override 支持所有HTTP方法。关闭95。

  • HTTP方法现在传递到 authenticate()check_auth() (肯·卡彭特)。关闭90。

  • 清理和强化用户限制的资源访问编辑(布莱恩牛)。

  • 帐户管理教程已更新,以反映v0.0.9中引入的事件挂钩命名更新。

  • 还有一些python 3重构(董伟明)。

  • 现在支持事件0.2.0。

  • 现在支持pymongo 2.6.2。

  • 现在支持Cerberus 0.4.0。

  • 项目 GET 对于不存在“已创建”字段的文档(因为存储在API上下文之外),没有返回该字段的默认值。

  • 对不存在“已创建”或“已更新”字段的文档的编辑(因为存储在API上下文之外)正在返回 412 Precondition Failed .关闭123。

  • on_insert 当a PUT (替换操作)即将执行。关闭120。

  • 在使用python 3的Windows上安装时返回编码错误。

  • 修复了99:当href包含禁止的uri/url字符时,XML呈现格式不正确。

  • 修复了0.0.9和Python3支持引入的错误。过滤器 (?where )在python 2.x上运行时,on datetime值不起作用。

  • 修正了文档中的一些拼写错误和小语法错误(KenCarpenter、Jean Boussier、Kracekumar、FranciscoCorrales Morales)。

0.0.9版

2013年8月29日发布

  • 现在支持pymongo 2.6。

  • FILTERS 布尔值替换为 ALLOWED_FILTERS 允许明确白名单过滤启用的字段(布莱恩牛)。关闭78。

  • 用于用户受限资源访问的自定义用户ID,允许使用基于令牌的身份验证实现更大的灵活性和令牌吊销。关闭73。

  • AUTH_USERNAME_FIELD 重命名为 AUTH_FIELD .

  • auth_username_field 重命名为 auth_field .

  • basicauth和子类现在支持 user_id 财产。

  • 更新了事件挂钩命名系统,使其更加机器人化和一致性。关闭80。

  • 为了强调它们与一个方法相关联的事实,所有 on_<method> 钩子现在有了 <method> 大写。

  • on_getting 挂钩重命名为 on_fetch_resource .

  • on_getting_<resource> hook renamed to on_fetch_resource_<resource>

  • on_getting_item 挂钩重命名为 on_fetch_item .

  • on_getting_item_<item_title> 挂钩重命名为 on_fetch_item_<item_title> .

  • on_posting 挂钩重命名为 on_insert .

  • 数据源投影始终包括自动字段 (ID_FIELDLAST_UPDATEDDATE_CREATED )。关闭85。

  • 公共HTTP方法现在重写 auth_username_field 编辑。关闭70(布莱恩牛)。

  • 响应日期字段现在使用的是GMT而不是UTC。关闭83。

  • 处理“附加查找”字段为整数的情况。如果是这种情况,您可以省略“url”键,因为它将被忽略,并正确解析整数值。

  • 更多信息性HTTP错误消息。已经为HTTP 400/3/12和500错误添加了更多信息性错误消息。只有当debug==true时才会显示错误消息(Bryan牛群)。

  • on_getting(resource, documents) 现在是 on_getting_resource(resource, documents)``on_getting_<resource>(documents) is now known as `` 关于“获取资源”(文档)`(Ryan Shea)。

  • 添加了一个新的事件挂钩: on_getting_item_<title>(_id, document) (赖安谢)。

  • 允许 auth_username_field 设置为 ID_FIELD (布莱恩牛)。

  • 现在支持python 3.3。

  • 现在支持烧瓶0.10.1。

  • 现在支持Werkzeug 0.9.4。

  • 版权最终更新至2013年。

0.0.8版

2013年7月25日发布。

  • 只有在安装了redis py并且redis服务器正在运行时才运行ratelimiting测试。

  • CORS Access-Control-Allow-Headers 收割台支架(Garrin Kimmell)。

  • CORS OPTIONS 支持资源和项目端点(Garrin Kimmell)。

  • float 现在可以作为模式定义规则集中的数据类型使用。

  • nullable 字段架构规则现在可用。如果 True 字段值可以设置为空。默认为 False .

  • 现在需要Cerberus的v0.3.0。

  • on_gettingon_getting_<resource>on_getting_item 事件挂钩。当刚刚从数据库中读取文档并即将发送到客户端时,将引发这些事件。注册的回调函数最终可以根据需要操作文档。请注意 last_modifiedetag 头将始终与数据库中文档的状态一致(它们不会被更新以反映回调函数最终应用的更改)。关闭65。

  • 文档修复: AUTH_USERFIELD_NAME 重命名为 AUTH_USERNAME_FIELD (朱利安·巴比特)。

  • 对获取资源终结点请求的响应现在包括 last 项目中 _links 字典。该值是指向可用最后一页的链接。仅当启用分页且请求的页面不是最后一个页面时,才提供项目本身。关闭62。

  • 现在可以在两个全局设置MongoDB写关注级别 (MONGO_WRITE_CONCERN )和终结点 (mongo_write_concern )级别。该值是一个字典,所有有效的mongodb write_concern设置(w、wtimeout、j和fsync)都是键。 {{'w': 1}} 是默认值,也是MongoDB的默认设置。

  • TestMininal 类添加到测试套件。这将允许通过将testminal类(daniele pizzolli)子类化,开始为基于eve的应用程序构建测试。

版本0.0.7

2013年6月18日发布。

  • 将werkzeug要求固定到v0.8.3,以避免最新版本的问题破坏向后兼容性(实际上是烧瓶0.9要求问题,回溯到eve)。

  • 支持所有HTTP方法的速率限制。关闭58。请注意:要成功执行“eve.tests.methods.ratelimit.py”中的测试,需要运行Redis服务器。

  • utils.request_method 添加了内部助手函数,这允许一些不错的代码清理(dry)。

  • 如果“数据关系”的嵌套深度超过第一个架构级别,则不会设置默认的“字段”值。修复60。

  • 支持 EXTRA_RESPONSE_FIELDS .现在可以配置附加文档字段的列表,这些字段应随Post响应一起提供。通常只自动处理字段 (ID_FIELDLAST_UPDATEDDATE_CREATEDetag )包含在后有效载荷中。 EXTRA_RESPONSE_FIELDS 是将应用于所有资源终结点的全局设置。默认为 [] ,有效禁用功能。 extra_response_fields 是本地资源设置,将重写 EXTRA_RESPONSE_FIELDS 在场时。

  • on_postingon_posting_<resource> 事件钩子。 on_postingon_posting_<resource> 将要存储文档时引发事件。此外,这允许回调函数任意更新插入的文档。 on_posting(resource, documents) 在每一个成功的岗位上 on_posting_<resource>(documents) 仅在更新<resource>时引发。在这两种情况下,只有在至少一个文档通过验证并将插入时,才会引发事件。

  • 本土化烧瓶 request.json 现在在解码请求有效负载时使用。

  • 资源 添加到授权类的参数。这个 check_auth() 中所有类的方法 eve.auth 包裹 (BasicAuthHMACAuthTokenAuth )现在支持 资源 参数。这允许子类最终围绕被访问的资源构建它们的自定义授权逻辑。

  • MONGO_QUERY_BLACKLIST 选项已添加。允许黑名单资源查询中不允许的Mongo查询运算符 (?where= )默认为 ['$where'、'$regex'] .默认情况下,mongo javascript操作符被禁用,因为它们可能被用作注入攻击的向量。JavaScript查询速度也很慢,通常可以很容易地用(非常丰富的)Mongo查询方言替换。

  • MONGO_HOST 默认为“localhost”。

  • MONGO_PORT 默认为27017。

  • 支持测试套件的备用主机/端口(Paul Doucet)。

版本0.0.6

2013年5月13日发布。

  • 现在,当包含其他参数(ondrej slint_k)时,内容类型头会正确解析。

  • 现在只从数据库返回资源架构中定义的字段。关闭52。

  • 违约 SERVER_NAME 现在设置为 127.0.0.1:5000 .

  • auth_username_field 即使在请求中没有查询,也会得到尊重(Thomas Sileo)。

  • XML有效负载中的分页链接现在已正确转义。修复49。

  • 支持头请求。关闭48。

  • 事件挂钩。每次执行get、post、patch和delete方法时,都是全局的 on_<method> 和资源级别 on_<method>_<resource> 将引发事件。您可以使用多个回调函数订阅这些事件。回调将接收原始flask.request对象和响应负载作为参数。

  • 适当的 max_results 处理 eve.utils.parse_request ,重构测试(tomasz jezierski)。

  • 预测。投影是一种条件查询,客户机指定API(Nicolas Bazire)应返回哪些字段。

  • ALLOW_UNKNOWN 选项,以及相应的 allow_options 本地设置,允许不太严格的架构验证。关闭34。

  • ETags现在提供了post响应。关闭36。

  • 补丁性能改进:ETag现在在内存中计算;不再需要执行额外的数据库查找。

  • 数据库上的大容量插入。post方法进行了大量重构,以利用MongoDB对大容量插入的本机支持。请注意:验证约束是根据数据库检查的,而不是在有效负载文档之间检查的。这导致了一个有趣的角情况:在多个文档有效负载的情况下,两个或多个文档对一个字段具有相同的值,其中 unique 设置约束后,有效负载将成功验证,因为数据库中没有重复项(尚未)。如果这是一个问题,客户机总是可以一次发送文档进行插入,或者在将有效负载提交给API之前在本地进行验证。

  • 对document get请求的响应现在在头部和有效负载中都包含etag。关闭29。

  • methods 设置关键字重命名为 resource_methods 与全球一致 RESOURCE_METHODS (尼古拉斯·卡里尔)。

0.0.5版

2013年4月11日发布。

  • 修复了一个明显导致测试套件仅在dev框中成功运行的问题。感谢chronidev报告。

  • 通过新的 data_relation 架构关键字。关闭25。

  • 支持 Content-Type: application/json 对于post和patch方法。关闭28。

  • 用户限制的资源访问。与身份验证结合使用。启用后,用户只能读取/更新/删除自己创建的资源项。可以在全局级别通过 AUTH_USERFIELD_NAME keywork,或在具有user_userfield_name关键字的单个资源端点(后者将覆盖前者)。关键字包含用于存储创建资源项的用户的用户名的字段的实际名称。默认为“”,这将禁用该功能(Thomas Sileo)。

  • PAGING_LIMIT 关键字设置重命名为 PAGINATION_LIMIT 为了更好地与新的 PAGINATION 关键字。在某些情况下,这可能会破坏向后兼容性。

  • PAGING_DEFAULT 关键字设置重命名为 PAGINATION_DEFAULT 为了更好地与新的 PAGINATION 关键字。在某些情况下,这可能会破坏向后兼容性。

  • ITEM_CACHE_CONTROL 因为目前似乎不必要,所以将其移除。

  • 添加了一个关于如何处理事件以执行自定义操作的示例。关闭23和22。

  • eve.validation_schema() 现在收集有问题的项目并将它们全部返回到异常消息中。关闭24。

  • 过滤器 (?where= )排序 (?sort= )和分页 (?page=10 )现在可以在全局和终结点级别禁用。关闭7。

  • CORS(跨源资源共享)支持。新的 X-DOMAINS 关键字允许API维护人员指定允许哪些域执行CORS请求。允许的值为:无、域列表或用于广泛打开的API的“*”。关闭1。

  • 基于HMAC(哈希消息身份验证代码)的身份验证。

  • 基于令牌的认证,基本认证的一种变体。关闭20。

  • 孤立函数已删除 (eve.methods.get.standard_links

  • DATE_CREATEDLAST_UPDATED 字段现在显示在API上下文之外创建的文档的默认值。修复18。

0.0.4版

2013年2月25日发布。

  • 运行/实例之间的ETag计算一致。关闭16。

  • 支持基本身份验证(RFC2617)。

  • 支持微调身份验证 PUBLIC_METHODSPUBLIC_ITEM_METHODS .默认情况下,访问限制为 all 端点,用于 all HTTP动词(方法),有效地锁定了整个API。

  • 支持基于角色的访问控制 ALLOWED_ROLESallowed_roles .

  • 支持所有标准烧瓶初始化参数。

  • 支持资源域中的默认值。新的 default 现在可以在定义字段规则集时使用关键字。请注意:当前默认值仅支持主文档字段。将忽略嵌入文档中字段的默认值。

  • 多个API端点现在可以针对同一个数据库集合。例如,现在可以同时设置 /admins//users/ 从数据库上的同一集合中读写, .新的 datasource 设置允许将API资源显式链接到数据库集合。它是一个字典,有两个允许的键: 来源滤波器 . 来源 指示资源使用的数据库集合。 滤波器 是基础查询,由API在检索和验证资源的数据时应用。以前,资源名称将指定链接的数据源(当然,不能有两个同名的资源)。这仍然是默认行为:如果省略 datasource 设置资源时,其名称将用于确定数据库集合。

  • 现在可以为每个资源设置预定义的DB筛选器。在用户查询上运行的预定义筛选器(使用 where 条款)和标准条件请求 (If-Modified-Since 等)请注意,数据源过滤器应用于get、patch和delete请求。如果您的资源允许发布请求(文档插入),那么您可能需要相应地设置验证规则(在我们的示例中,“用户名”可能是必需字段)。

  • 已删除JSON日期时间依赖项。

  • 支持Cerberus v0.0.3及更高版本。

  • 支持烧瓶pymongo v0.2.0及更高版本。

  • 对同一端点的重复XML请求有时会返回内部服务器错误(修复8)。

0.0.3版

2013年1月22日发布。

  • XML呈现爱情。充满爱。

  • JSON链接总是包装在 _links 字典。键值匹配所表示的项和链接资源之间的关系。

  • 简化了JSON响应。超级的 response 根键已从JSON有效负载中删除。获取对资源终结点的请求:项现在用 _items 列表。获取对项目端点的请求:项目现在位于根级别,周围没有包装器。

  • 通过新的api_版本配置设置支持api版本控制。

  • 现在正确解析请求表单中的布尔值。

  • 测试现在在python 2.6下运行。

0.0.2版

2012年11月27日发布。

  • 主页/API入口点资源链接已修复。它们有错误的“href”标记,这在处理响应时(尤其是通过浏览器访问API时)也会导致XML验证问题。

  • “服务器”响应头中的版本号。

  • 添加了对资源端点删除的支持。预期行为:将删除集合中的所有项。默认情况下禁用。

  • eve.io.mongo.Validator 现在支持 Validator 签名,允许进一步的子类化。

0.0.1版

2012年11月20日发布。

  • 首次公开预览发布。