Files
connexion/docs/images/validation.excalidraw
Robbe Sneyders fb071ea56f Extract JSON request body validation to middleware (#1588)
* Set up code skeleton for validation middleware

* Add more boilerplate code

* WIP

* Add ASGI JSONBodyValidator

* Revert example changes

* Remove incorrect content type test

Co-authored-by: Ruwan <ruwanlambrichts@gmail.com>
2022-09-18 10:55:16 +02:00

2202 lines
55 KiB
Plaintext

{
"type": "excalidraw",
"version": 2,
"source": "https://marketplace.visualstudio.com/items?itemName=pomdtr.excalidraw-editor",
"elements": [
{
"type": "rectangle",
"version": 188,
"versionNonce": 782484148,
"isDeleted": false,
"id": "JpX4qWHI5T3rWsQNo8BIJ",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -126,
"y": 309.75,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 579,
"height": 520,
"seed": 1924939290,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "fyb-BlSfBNUQW-RhFrYlW"
}
],
"updated": 1657659938908,
"link": null,
"locked": false
},
{
"type": "text",
"version": 107,
"versionNonce": 1349907084,
"isDeleted": false,
"id": "fyb-BlSfBNUQW-RhFrYlW",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -121,
"y": 314.75,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 569,
"height": 27,
"seed": 824937350,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657659938908,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "URIParsingDecorator",
"baseline": 19,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "JpX4qWHI5T3rWsQNo8BIJ",
"originalText": "URIParsingDecorator"
},
{
"type": "rectangle",
"version": 133,
"versionNonce": 287368588,
"isDeleted": false,
"id": "Mcwp--vJPnPeNDtn498DD",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -138.5,
"y": 231,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 601.25,
"height": 613.75,
"seed": 749725254,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "qv9ibB4yDSzzg-Z_NRgRa"
}
],
"updated": 1657659936237,
"link": null,
"locked": false
},
{
"type": "text",
"version": 51,
"versionNonce": 972228916,
"isDeleted": false,
"id": "qv9ibB4yDSzzg-Z_NRgRa",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -133.5,
"y": 236,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 591,
"height": 27,
"seed": 1324244166,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657659936237,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "RequestResponseDecorator",
"baseline": 19,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "Mcwp--vJPnPeNDtn498DD",
"originalText": "RequestResponseDecorator"
},
{
"type": "rectangle",
"version": 308,
"versionNonce": 1557960844,
"isDeleted": false,
"id": "GvbZHWZuowAwdZf7U0OqS",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -149,
"y": 174.75,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 624,
"height": 701,
"seed": 1046636230,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "1RdmHz8xCKglRAgN7B2IV"
}
],
"updated": 1657659931781,
"link": null,
"locked": false
},
{
"type": "text",
"version": 213,
"versionNonce": 1598031412,
"isDeleted": false,
"id": "1RdmHz8xCKglRAgN7B2IV",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -144,
"y": 179.75,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 614,
"height": 27,
"seed": 183194950,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657659931781,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "Operation",
"baseline": 19,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "GvbZHWZuowAwdZf7U0OqS",
"originalText": "Operation"
},
{
"type": "rectangle",
"version": 98,
"versionNonce": 865783604,
"isDeleted": false,
"id": "eufwrHjRoL0ykIjnVE8T3",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -97.25,
"y": 414.75,
"strokeColor": "#495057",
"backgroundColor": "transparent",
"width": 513,
"height": 393.75,
"seed": 1617145754,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "EgTuU4chTrXDbiuaF2j8I"
}
],
"updated": 1657659946645,
"link": null,
"locked": false
},
{
"type": "text",
"version": 33,
"versionNonce": 61074956,
"isDeleted": false,
"id": "EgTuU4chTrXDbiuaF2j8I",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -92.25,
"y": 419.75,
"strokeColor": "#495057",
"backgroundColor": "transparent",
"width": 503,
"height": 27,
"seed": 1629441350,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657659946646,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "ValidationDecorators",
"baseline": 19,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "eufwrHjRoL0ykIjnVE8T3",
"originalText": "ValidationDecorators"
},
{
"type": "rectangle",
"version": 79,
"versionNonce": 1193456340,
"isDeleted": false,
"id": "F8L4f-VqgMH0YFLqFv4pF",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -67.25,
"y": 572.25,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 425,
"height": 192.5,
"seed": 235861530,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "Qhm1QZd1Sod5GEj1J_jzE"
}
],
"updated": 1657109295715,
"link": null,
"locked": false
},
{
"type": "text",
"version": 176,
"versionNonce": 934646892,
"isDeleted": false,
"id": "Qhm1QZd1Sod5GEj1J_jzE",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -62.25,
"y": 577.25,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 415,
"height": 27,
"seed": 522119194,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657109295715,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "ParameterValidator",
"baseline": 19,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "F8L4f-VqgMH0YFLqFv4pF",
"originalText": "ParameterValidator"
},
{
"type": "rectangle",
"version": 88,
"versionNonce": 1469776468,
"isDeleted": false,
"id": "DPRq84A90VAXpZsLpTccW",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -79.75,
"y": 503.5,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 466.25,
"height": 275,
"seed": 609115142,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "KjehnM2DVL_W5l58_tdwg"
}
],
"updated": 1657109292171,
"link": null,
"locked": false
},
{
"type": "text",
"version": 119,
"versionNonce": 1162607852,
"isDeleted": false,
"id": "KjehnM2DVL_W5l58_tdwg",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -74.75,
"y": 508.5,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 456,
"height": 27,
"seed": 587129286,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657109292171,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "RequestBodyValidator",
"baseline": 19,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "DPRq84A90VAXpZsLpTccW",
"originalText": "RequestBodyValidator"
},
{
"type": "rectangle",
"version": 252,
"versionNonce": 226742996,
"isDeleted": false,
"id": "1Wc35Up6tTRx7LfXGiD0n",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 553,
"y": 133,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 618.0000000000001,
"height": 509.00000000000006,
"seed": 1477632282,
"groupIds": [
"Ee9O6yRCOa9x6S3ZPNUe7"
],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "mOvyeGtZj44-31gSVGY_e",
"type": "arrow"
},
{
"type": "text",
"id": "vQ-gGPi8D7Pg1uXuoeSuB"
}
],
"updated": 1657129287430,
"link": null,
"locked": false
},
{
"type": "arrow",
"version": 88,
"versionNonce": 1533737498,
"isDeleted": false,
"id": "mOvyeGtZj44-31gSVGY_e",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 703,
"y": 745,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 0,
"height": 102,
"seed": 1359357338,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1657056115885,
"link": null,
"locked": false,
"startBinding": null,
"endBinding": {
"elementId": "1Wc35Up6tTRx7LfXGiD0n",
"focus": 0.5145631067961164,
"gap": 1
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
0,
-102
]
]
},
{
"type": "text",
"version": 10,
"versionNonce": 544001158,
"isDeleted": false,
"id": "HYOGfasB7AZAut7zO571P",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 731,
"y": 693,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 76,
"height": 25,
"seed": 1600321350,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657056115885,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "request",
"baseline": 18,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "request"
},
{
"type": "rectangle",
"version": 206,
"versionNonce": 939629268,
"isDeleted": false,
"id": "AtNv1-PdvfHdqHlWXmAMx",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 598.5714285714287,
"y": 250.28571428571422,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 525,
"height": 118,
"seed": 2114038662,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "v-HTk4gCI6RYIfFLdOhOl"
}
],
"updated": 1657129458228,
"link": null,
"locked": false
},
{
"type": "rectangle",
"version": 600,
"versionNonce": 617498092,
"isDeleted": false,
"id": "0_KWkADKX7EerCxUG2qzL",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -33.25,
"y": 634.75,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 382,
"height": 115,
"seed": 1855268870,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "pJpUCp_B7Oby6yHstVzD-"
},
{
"id": "ii1kW1ujD2YKW8GbHjIi2",
"type": "arrow"
}
],
"updated": 1657109307448,
"link": null,
"locked": false
},
{
"type": "text",
"version": 466,
"versionNonce": 1500095340,
"isDeleted": false,
"id": "pJpUCp_B7Oby6yHstVzD-",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -28.25,
"y": 639.75,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 372,
"height": 27,
"seed": 496892122,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657109302699,
"link": null,
"locked": false,
"fontSize": 19.99999999999999,
"fontFamily": 1,
"text": "ResponseValidationDecorator",
"baseline": 20,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "0_KWkADKX7EerCxUG2qzL",
"originalText": "ResponseValidationDecorator"
},
{
"type": "text",
"version": 216,
"versionNonce": 473792084,
"isDeleted": false,
"id": "KXPHHHYEoG3dv5yR1u9eK",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -29.75,
"y": 662.25,
"strokeColor": "#e67700",
"backgroundColor": "transparent",
"width": 364,
"height": 24,
"seed": 47281542,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "QXzZ7uSPNuX-lWgVrIzEk",
"type": "arrow"
}
],
"updated": 1657109305120,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 3,
"text": "__response_validation_decorator",
"baseline": 19,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "__response_validation_decorator"
},
{
"type": "text",
"version": 231,
"versionNonce": 645600646,
"isDeleted": false,
"id": "koH1VrHmxSJJKGL-y4oTR",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -71.75,
"y": 456.5,
"strokeColor": "#e67700",
"backgroundColor": "transparent",
"width": 271,
"height": 24,
"seed": 2053866502,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657056264586,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 3,
"text": "__validation_decorators",
"baseline": 19,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "__validation_decorators"
},
{
"type": "text",
"version": 131,
"versionNonce": 1353355098,
"isDeleted": false,
"id": "2amEG8mcr0yFFM3l4wwtV",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -79.25,
"y": 358.5,
"strokeColor": "#e67700",
"backgroundColor": "transparent",
"width": 259,
"height": 24,
"seed": 992535302,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657056491217,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 3,
"text": "_uri_parsing_decorator",
"baseline": 19,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": null,
"originalText": "_uri_parsing_decorator"
},
{
"type": "text",
"version": 82,
"versionNonce": 1612314182,
"isDeleted": false,
"id": "e2UEjvcGmoCldl2zU7jPI",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -824.75,
"y": 429.5,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 139,
"height": 25,
"seed": 1079663322,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "YRK2q-v0lexuP_jM8GVrA",
"type": "arrow"
},
{
"id": "9F4N8Kbq6TTCJNwFIGPzW",
"type": "arrow"
},
{
"id": "tfgdwbd8mNLXkKHXxYrnL",
"type": "arrow"
}
],
"updated": 1657056576878,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "Validator Map",
"baseline": 18,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Validator Map"
},
{
"type": "text",
"version": 16,
"versionNonce": 817030106,
"isDeleted": false,
"id": "3i7sK1PofxbOGjD56eHbL",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -573.5,
"y": 353.25,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 104,
"height": 25,
"seed": 671951322,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "YRK2q-v0lexuP_jM8GVrA",
"type": "arrow"
},
{
"id": "ii1kW1ujD2YKW8GbHjIi2",
"type": "arrow"
}
],
"updated": 1657056588822,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "Parameter",
"baseline": 18,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Parameter"
},
{
"type": "text",
"version": 11,
"versionNonce": 1022965274,
"isDeleted": false,
"id": "W9R7JdfZoUC4HkGV0DE2f",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -573.5,
"y": 438.25,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 47,
"height": 25,
"seed": 41001754,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "9F4N8Kbq6TTCJNwFIGPzW",
"type": "arrow"
},
{
"id": "RUQSOOvbPwLarpWBXj-Qk",
"type": "arrow"
}
],
"updated": 1657056594471,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "Body",
"baseline": 18,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Body"
},
{
"type": "text",
"version": 12,
"versionNonce": 1340677382,
"isDeleted": false,
"id": "Xbfa5fJ_Eg5aOGU-H9Y6A",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -573.5,
"y": 530.75,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 88,
"height": 25,
"seed": 992958790,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "tfgdwbd8mNLXkKHXxYrnL",
"type": "arrow"
},
{
"id": "QXzZ7uSPNuX-lWgVrIzEk",
"type": "arrow"
}
],
"updated": 1657056599111,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "Response",
"baseline": 18,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Response"
},
{
"type": "arrow",
"version": 55,
"versionNonce": 262223706,
"isDeleted": false,
"id": "YRK2q-v0lexuP_jM8GVrA",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -672.25,
"y": 444.75,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 92.5,
"height": 81.25,
"seed": 1825425478,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1657056562791,
"link": null,
"locked": false,
"startBinding": {
"elementId": "e2UEjvcGmoCldl2zU7jPI",
"focus": 1.0286632981166743,
"gap": 13.5
},
"endBinding": {
"elementId": "3i7sK1PofxbOGjD56eHbL",
"focus": 0.9181765389082461,
"gap": 6.25
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
92.5,
-81.25
]
]
},
{
"type": "arrow",
"version": 54,
"versionNonce": 705073926,
"isDeleted": false,
"id": "9F4N8Kbq6TTCJNwFIGPzW",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -674.75,
"y": 449.75,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 96.25,
"height": 1.25,
"seed": 1296598854,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1657056573486,
"link": null,
"locked": false,
"startBinding": {
"elementId": "e2UEjvcGmoCldl2zU7jPI",
"focus": 0.65625,
"gap": 11
},
"endBinding": {
"elementId": "W9R7JdfZoUC4HkGV0DE2f",
"focus": 0.20461460446247465,
"gap": 5
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
96.25,
-1.25
]
]
},
{
"type": "arrow",
"version": 33,
"versionNonce": 1062992154,
"isDeleted": false,
"id": "tfgdwbd8mNLXkKHXxYrnL",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -678.5,
"y": 454.75,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 100,
"height": 90,
"seed": 856310342,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1657056576878,
"link": null,
"locked": false,
"startBinding": {
"elementId": "e2UEjvcGmoCldl2zU7jPI",
"focus": -0.7504996668887408,
"gap": 7.25
},
"endBinding": {
"elementId": "Xbfa5fJ_Eg5aOGU-H9Y6A",
"focus": -0.8752399232245682,
"gap": 5
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
100,
90
]
]
},
{
"type": "arrow",
"version": 124,
"versionNonce": 1300932948,
"isDeleted": false,
"id": "ii1kW1ujD2YKW8GbHjIi2",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -451.2045454545455,
"y": 370.6280687386651,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 403.17095908138305,
"height": 256.1375069059035,
"seed": 1322884294,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1657109307448,
"link": null,
"locked": false,
"startBinding": {
"elementId": "3i7sK1PofxbOGjD56eHbL",
"gap": 18.295454545454536,
"focus": -0.8722179840127365
},
"endBinding": {
"elementId": "0_KWkADKX7EerCxUG2qzL",
"gap": 16.80194805194805,
"focus": -0.368678065646758
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
403.17095908138305,
256.1375069059035
]
]
},
{
"type": "arrow",
"version": 165,
"versionNonce": 1327589702,
"isDeleted": false,
"id": "RUQSOOvbPwLarpWBXj-Qk",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -519.75,
"y": 458.5,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 462.5,
"height": 80,
"seed": 323051206,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1657056594471,
"link": null,
"locked": false,
"startBinding": {
"elementId": "W9R7JdfZoUC4HkGV0DE2f",
"focus": 0.15198237885462554,
"gap": 6.75
},
"endBinding": null,
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
462.5,
80
]
]
},
{
"type": "arrow",
"version": 199,
"versionNonce": 102929364,
"isDeleted": false,
"id": "QXzZ7uSPNuX-lWgVrIzEk",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -479.75,
"y": 544.469121838645,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 449,
"height": 120.33035350521038,
"seed": 317739142,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1657109305120,
"link": null,
"locked": false,
"startBinding": {
"elementId": "Xbfa5fJ_Eg5aOGU-H9Y6A",
"focus": -0.5014537654909438,
"gap": 5.75
},
"endBinding": {
"elementId": "KXPHHHYEoG3dv5yR1u9eK",
"focus": -0.6514617458013685,
"gap": 1
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
449,
120.33035350521038
]
]
},
{
"type": "rectangle",
"version": 88,
"versionNonce": 468207980,
"isDeleted": false,
"id": "rXa-QG23C3IjCw4w_wNT8",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -17.25,
"y": 701.5,
"strokeColor": "#5c940d",
"backgroundColor": "#40c057",
"width": 351.25,
"height": 37,
"seed": 177364692,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "BAmUMCwizQs8W39CF4e2-"
}
],
"updated": 1657109325492,
"link": null,
"locked": false
},
{
"type": "text",
"version": 32,
"versionNonce": 1015653332,
"isDeleted": false,
"id": "BAmUMCwizQs8W39CF4e2-",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -12.25,
"y": 706.5,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 341,
"height": 27,
"seed": 1396266452,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657109335732,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "user view function",
"baseline": 19,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "rXa-QG23C3IjCw4w_wNT8",
"originalText": "user view function"
},
{
"type": "rectangle",
"version": 258,
"versionNonce": 1111172929,
"isDeleted": false,
"id": "EMF5Ue9Hxc3tw75x3MKc0",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -928.5,
"y": 671.5,
"strokeColor": "#e67700",
"backgroundColor": "transparent",
"width": 544,
"height": 307,
"seed": 1367285996,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "614beKkCTEx5SFwCGpNHA"
}
],
"updated": 1658343485525,
"link": null,
"locked": false
},
{
"type": "text",
"version": 746,
"versionNonce": 381527183,
"isDeleted": false,
"id": "614beKkCTEx5SFwCGpNHA",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -923.5,
"y": 676.5,
"strokeColor": "#e67700",
"backgroundColor": "transparent",
"width": 534,
"height": 297,
"seed": 1795596140,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1658343495204,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "Current Issues:\n1) Need parsing for both validation as well as view \nfunc args, but different kind of request object\n2) URIParsingDecorator takes in request and \nmutates it\n3) formdata both validated by body validator and \nparameter validator\n4) Purpose of the random \"produces\" decorator?\n5) Starlette request: form data not considered \n\"body\" (when reading form property, does NOT set \n\"_body\" attribute, leading to StreamConsumed Error)",
"baseline": 289,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "EMF5Ue9Hxc3tw75x3MKc0",
"originalText": "Current Issues:\n1) Need parsing for both validation as well as view func args, but different kind of request object\n2) URIParsingDecorator takes in request and mutates it\n3) formdata both validated by body validator and parameter validator\n4) Purpose of the random \"produces\" decorator?\n5) Starlette request: form data not considered \"body\" (when reading form property, does NOT set \"_body\" attribute, leading to StreamConsumed Error)"
},
{
"type": "rectangle",
"version": 91,
"versionNonce": 1899488947,
"isDeleted": false,
"id": "oVLEFghlUr5zEN9hBUYDr",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -557.25,
"y": 1107.5714285714284,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 920,
"height": 563,
"seed": 2014646996,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "w1KsAarZR4Ul7HM3P-7q6"
}
],
"updated": 1657573378513,
"link": null,
"locked": false
},
{
"type": "text",
"version": 91,
"versionNonce": 1269125629,
"isDeleted": false,
"id": "w1KsAarZR4Ul7HM3P-7q6",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -552.25,
"y": 1112.5714285714284,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 910,
"height": 27,
"seed": 125749100,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657573378513,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "URIParser -> Parser",
"baseline": 19,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "oVLEFghlUr5zEN9hBUYDr",
"originalText": "URIParser -> Parser"
},
{
"type": "text",
"version": 28,
"versionNonce": 245013844,
"isDeleted": false,
"id": "vQ-gGPi8D7Pg1uXuoeSuB",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 558,
"y": 138,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 608,
"height": 27,
"seed": 1175871212,
"groupIds": [
"Ee9O6yRCOa9x6S3ZPNUe7"
],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657129285584,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "ValidationOperation",
"baseline": 19,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "1Wc35Up6tTRx7LfXGiD0n",
"originalText": "ValidationOperation"
},
{
"type": "text",
"version": 44,
"versionNonce": 1989749868,
"isDeleted": false,
"id": "v-HTk4gCI6RYIfFLdOhOl",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 603.5714285714287,
"y": 255.28571428571422,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 515,
"height": 27,
"seed": 1657090132,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657129458228,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "RequestBodyValidator",
"baseline": 19,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "AtNv1-PdvfHdqHlWXmAMx",
"originalText": "RequestBodyValidator"
},
{
"type": "rectangle",
"version": 557,
"versionNonce": 1834230892,
"isDeleted": false,
"id": "uYCAJm8Do_4YPuRFX5nEa",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 598.4642857142856,
"y": 387.28571428571416,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 522,
"height": 102,
"seed": 875563092,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "nomprY285IF0PbSPqZVNz",
"type": "text"
},
{
"type": "text",
"id": "nomprY285IF0PbSPqZVNz"
}
],
"updated": 1657129468332,
"link": null,
"locked": false
},
{
"type": "text",
"version": 392,
"versionNonce": 1556064340,
"isDeleted": false,
"id": "nomprY285IF0PbSPqZVNz",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 603.4642857142856,
"y": 392.28571428571416,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 512,
"height": 27,
"seed": 1827821292,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657129468332,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "ParameterValidator",
"baseline": 19,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "uYCAJm8Do_4YPuRFX5nEa",
"originalText": "ParameterValidator"
},
{
"type": "rectangle",
"version": 257,
"versionNonce": 2125307660,
"isDeleted": false,
"id": "seh4ISIyvaNL_muY-STLj",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 536.4285714285712,
"y": 1104.3214285714287,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 920,
"height": 563,
"seed": 1028651763,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "YB9f0mO3eEuYAeNfu4OcD",
"type": "text"
},
{
"type": "text",
"id": "YB9f0mO3eEuYAeNfu4OcD"
}
],
"updated": 1657659655008,
"link": null,
"locked": false
},
{
"type": "text",
"version": 284,
"versionNonce": 1137223604,
"isDeleted": false,
"id": "YB9f0mO3eEuYAeNfu4OcD",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 541.4285714285712,
"y": 1109.3214285714287,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 910,
"height": 27,
"seed": 2079826365,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657659655008,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "RequestBodyValidator",
"baseline": 19,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "seh4ISIyvaNL_muY-STLj",
"originalText": "RequestBodyValidator"
},
{
"type": "text",
"version": 360,
"versionNonce": 835114397,
"isDeleted": false,
"id": "JkYKZZ9lnQ00HQzwmw1-n",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -454.0357142857142,
"y": 1238.3571428571427,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 654,
"height": 100,
"seed": 666949405,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657574371912,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "- Transforms MultiDict into dict of lists\n- Handles the array types in query, path, and form (no header?)\n -> collectionFormat (swagger 2) & style/explode (OpenAPI 3)\n",
"baseline": 93,
"textAlign": "left",
"verticalAlign": "middle",
"containerId": null,
"originalText": "- Transforms MultiDict into dict of lists\n- Handles the array types in query, path, and form (no header?)\n -> collectionFormat (swagger 2) & style/explode (OpenAPI 3)\n"
},
{
"type": "text",
"version": 247,
"versionNonce": 97254707,
"isDeleted": false,
"id": "yt4PH7sJ9xkdbEz65tKHK",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 630.5714285714283,
"y": 1202.25,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 530,
"height": 100,
"seed": 1686149011,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657574623722,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "- Load body\n- Check for extra parameters (for form data)\n- Parse (coerce_type() for form parameters)\n- Use jsonschema validator to validate request body",
"baseline": 93,
"textAlign": "left",
"verticalAlign": "middle",
"containerId": null,
"originalText": "- Load body\n- Check for extra parameters (for form data)\n- Parse (coerce_type() for form parameters)\n- Use jsonschema validator to validate request body"
},
{
"type": "rectangle",
"version": 657,
"versionNonce": 1819586188,
"isDeleted": false,
"id": "Y5iMdfxt4PoOC5tCnjKWp",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 584.9523809523805,
"y": 2464.3214285714284,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 920,
"height": 728,
"seed": 1885069011,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "FG-6hlWfFi40t9hUwFG9r",
"type": "text"
},
{
"id": "FG-6hlWfFi40t9hUwFG9r",
"type": "text"
},
{
"type": "text",
"id": "FG-6hlWfFi40t9hUwFG9r"
}
],
"updated": 1657660323300,
"link": null,
"locked": false
},
{
"type": "text",
"version": 658,
"versionNonce": 1163677748,
"isDeleted": false,
"id": "FG-6hlWfFi40t9hUwFG9r",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 589.9523809523805,
"y": 2469.3214285714284,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 910,
"height": 27,
"seed": 989096925,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657660323300,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "ResponseValidator",
"baseline": 19,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "Y5iMdfxt4PoOC5tCnjKWp",
"originalText": "ResponseValidator"
},
{
"type": "text",
"version": 297,
"versionNonce": 158792972,
"isDeleted": false,
"id": "e-j9rh8Fmjl2vIus0EBLK",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 817.809523809523,
"y": 2502.5357142857138,
"strokeColor": "#e67700",
"backgroundColor": "transparent",
"width": 108,
"height": 25,
"seed": 1802713309,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657660323300,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "response.py",
"baseline": 18,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "response.py"
},
{
"type": "rectangle",
"version": 459,
"versionNonce": 726411700,
"isDeleted": false,
"id": "x71PZHZmPldGsg2JdstIW",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 800.6666666666656,
"y": 2581.5357142857138,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 503,
"height": 239.99999999999977,
"seed": 902999069,
"groupIds": [
"rszbEmvY0kGez18GQ0hmD"
],
"strokeSharpness": "sharp",
"boundElements": [
{
"type": "text",
"id": "gZZ4B07Kr5Qe8Ruxm_Hww"
}
],
"updated": 1657660323300,
"link": null,
"locked": false
},
{
"type": "text",
"version": 445,
"versionNonce": 506166156,
"isDeleted": false,
"id": "gZZ4B07Kr5Qe8Ruxm_Hww",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 805.6666666666656,
"y": 2586.5357142857138,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 493,
"height": 27,
"seed": 1978791965,
"groupIds": [
"rszbEmvY0kGez18GQ0hmD"
],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657660323300,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "ResponseBodyValidator",
"baseline": 19,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "x71PZHZmPldGsg2JdstIW",
"originalText": "ResponseBodyValidator"
},
{
"type": "text",
"version": 529,
"versionNonce": 1225052980,
"isDeleted": false,
"id": "nlMHHerwr3FqX5_VdCMRV",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1095.2380952380945,
"y": 2619.0357142857138,
"strokeColor": "#e67700",
"backgroundColor": "transparent",
"width": 120,
"height": 25,
"seed": 1657726195,
"groupIds": [
"rszbEmvY0kGez18GQ0hmD"
],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657660323300,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "validation.py",
"baseline": 18,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "validation.py"
},
{
"type": "rectangle",
"version": 409,
"versionNonce": 1422666252,
"isDeleted": false,
"id": "4mhLX1BAibbRq-9jHTkzK",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 664.8809523809516,
"y": 2877.25,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 503,
"height": 239.99999999999977,
"seed": 1099972093,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "dogA9nRWTfFdBiSJBxpj7",
"type": "text"
},
{
"type": "text",
"id": "dogA9nRWTfFdBiSJBxpj7"
}
],
"updated": 1657660323300,
"link": null,
"locked": false
},
{
"type": "text",
"version": 499,
"versionNonce": 1290554548,
"isDeleted": false,
"id": "dogA9nRWTfFdBiSJBxpj7",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 669.8809523809516,
"y": 2882.25,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 493,
"height": 54,
"seed": 219704403,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657660323300,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "response header validation\n-> check required headers on response",
"baseline": 46,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "4mhLX1BAibbRq-9jHTkzK",
"originalText": "response header validation\n-> check required headers on response"
},
{
"type": "text",
"version": 178,
"versionNonce": 5441676,
"isDeleted": false,
"id": "HimwcYeRiLAI66KKPjmv6",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 886.6666666666656,
"y": 2689.0357142857138,
"strokeColor": "#e67700",
"backgroundColor": "transparent",
"width": 331,
"height": 25,
"seed": 233197619,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657660323300,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "only checks JSON response bodies",
"baseline": 18,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": null,
"originalText": "only checks JSON response bodies"
},
{
"type": "rectangle",
"version": 496,
"versionNonce": 1309666956,
"isDeleted": false,
"id": "cBhhcpe82MnamL7NE5UpO",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 560.3333333333331,
"y": 1774.0833333333335,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 920,
"height": 563,
"seed": 1497469236,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "63n0pWcU6lYmOvopxNbyK",
"type": "text"
},
{
"id": "63n0pWcU6lYmOvopxNbyK",
"type": "text"
},
{
"type": "text",
"id": "63n0pWcU6lYmOvopxNbyK"
}
],
"updated": 1657660820475,
"link": null,
"locked": false
},
{
"type": "text",
"version": 533,
"versionNonce": 1310003252,
"isDeleted": false,
"id": "63n0pWcU6lYmOvopxNbyK",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 565.3333333333331,
"y": 1779.0833333333335,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 910,
"height": 27,
"seed": 37899276,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657660820475,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "ParameterValidator",
"baseline": 19,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "cBhhcpe82MnamL7NE5UpO",
"originalText": "ParameterValidator"
},
{
"type": "arrow",
"version": 263,
"versionNonce": 1418211852,
"isDeleted": false,
"id": "cb-SBS0MInPyMKRc9DsRG",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -74,
"y": 429.25,
"strokeColor": "#495057",
"backgroundColor": "transparent",
"width": 279.8301098848457,
"height": 197.31764600594528,
"seed": 127028364,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1657659983421,
"link": null,
"locked": false,
"startBinding": null,
"endBinding": {
"elementId": "PtNxT5LBYRDUWzSHStkdc",
"focus": -0.32843629612970593,
"gap": 10.682353994054722
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
-279.8301098848457,
-197.31764600594528
]
]
},
{
"type": "text",
"version": 64,
"versionNonce": 1788627764,
"isDeleted": false,
"id": "PtNxT5LBYRDUWzSHStkdc",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -536,
"y": 196.25,
"strokeColor": "#495057",
"backgroundColor": "transparent",
"width": 216,
"height": 25,
"seed": 615891508,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "cb-SBS0MInPyMKRc9DsRG",
"type": "arrow"
}
],
"updated": 1657659983421,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "not a separate class",
"baseline": 18,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "not a separate class"
},
{
"type": "text",
"version": 221,
"versionNonce": 31888780,
"isDeleted": false,
"id": "9O2cpfaD48-UdT-6005E0",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 646.8333333333331,
"y": 1964.0833333333333,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 763,
"height": 50,
"seed": 1766900748,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657660822626,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "- If strict_validation, check for additional parameters in query or formdata\n- Check parameters: query, path, header, cookie, formdata",
"baseline": 43,
"textAlign": "left",
"verticalAlign": "middle",
"containerId": null,
"originalText": "- If strict_validation, check for additional parameters in query or formdata\n- Check parameters: query, path, header, cookie, formdata"
},
{
"type": "text",
"version": 329,
"versionNonce": 308334132,
"isDeleted": false,
"id": "yQVq7UzS7sYP9qY-nv6bQ",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 724,
"y": 2086.750000000001,
"strokeColor": "#e67700",
"backgroundColor": "transparent",
"width": 578,
"height": 25,
"seed": 101975052,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1657661001421,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "formdata should be handled in RequestBodyValidator only?",
"baseline": 18,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": null,
"originalText": "formdata should be handled in RequestBodyValidator only?"
}
],
"appState": {
"gridSize": null,
"viewBackgroundColor": "#ffffff"
},
"files": {}
}