JSON RX模式验证工具
项目描述
什么是Rx?
当向您的网络服务添加API时,您必须选择如何编码您要发送的数据。XML是这一选择中的一种常见选择,但它可以很快变得晦涩和繁琐。许多webservice作者想避免思考XML,而是选择提供一些简单数据类型,这些类型与现代编程语言中的常见数据结构相对应的格式。换句话说,JSON和YAML。
不幸的是,虽然这些格式使传递复杂数据结构变得容易,但它们缺乏一种验证系统。XML有XML模式和RELAX NG,但这些都是复杂和有时令人困惑的标准。它们不太适合JSON提供的数据结构,如果您想避免XML作为数据编码,那么为第一个XML编写更多的XML可能更不受欢迎。
Rx旨在提供一个与JSON风格数据结构匹配且与JSON本身一样易于使用的数据验证系统。
rxjson
rxjson是一个Python包,帮助您直接在您的Python应用程序中对生成的JSON与标准json模式进行验证。
它是http://rx.codesimply.com/的包装版本
用法
以下是一个如何验证您的JSON与rx模式的小例子
import requests
from rxjson import Rx
import unittest
class SporeTest(unittest.TestCase):
"""Test generate spore schema."""
def test_spore(self):
rx = Rx.Factory({ "register_core_types": True })
with open('spore_validation.rx') as f:
spore_json_schema = json.loads(f.read())
spore_schema = rx.make_schema(spore_json_schema)
resp = requests.get('http://localhost:8000/spore', headers={'Content-Type': 'application/json'})
self.assertTrue(spore_schema.check(resp.json))
甚至更快
>>> import json
>>> from rxjson import Rx
>>> rx = Rx.Factory({ "register_core_types": True })
>>> spore_json_schema = json.loads(open('spore_validation.rx').read())
>>> spore_schema = rx.make_schema(spore_json_schema)
>>> js = json.loads("""{
... "base_url": "http://localhost:8000",
... "expected_status": [200],
... "version": "0.1",
... "methods": {
... "put_data_item": {
... "path": "/data/:model_name/:data_item_id",
... "description": "Update a data item.",
... "required_params": ["model_name", "data_item_id"],
... "method": "PUT",
... "formats": ["json"]
... }
... },
... "name": "daybed"
... }""")
>>> spore_schema.check(js)
True
spore_validation.rx 是 https://github.com/SPORE/specifications 的一部分
床榻 是一个表单模型验证 API: https://github.com/spiral-project/daybed
项目详情
关闭
rxjson-0.3.zip 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2ed3d5dadf9e8aef2ef1f3cdfa3cf9abae99c9eac5a2db0267f17a9dae3a66e1 |
|
MD5 | e3dbc9b395193db1b76bd27344e4402d |
|
BLAKE2b-256 | 0a66a34442065708bf6416af43d6285129b5b806eecee2f04926f63998eda170 |