[NETCONF-1164] OpenAPI POST request generates incorrect XML example payload Created: 22/Sep/23 Updated: 31/Oct/23 Resolved: 31/Oct/23 |
|
| Status: | Resolved |
| Project: | netconf |
| Component/s: | restconf-openapi |
| Affects Version/s: | None |
| Fix Version/s: | 7.0.0, 4.0.9, 6.0.5, 5.0.10 |
| Type: | Bug | Priority: | Medium |
| Reporter: | Peter Suna | Assignee: | Samuel Schneider |
| Resolution: | Done | Votes: | 0 |
| Labels: | pt | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
||||||||
| Issue Links: |
|
||||||||
| Description |
|
Provided model create wrong XML payload for POST request: curl -X 'POST' \ 'http://localhost:8181/rests/data/network-topology:network-topology/topology=topology-netconf/node=36001-sim-device/yang-ext:mount/toaster-example:toaster' \ -H 'accept: */*' \ -H 'Content-Type: application/xml' \ -d '<?xml version="1.0" encoding="UTF-8"?> <toaster xmlns="http://netconfcentral.org/ns/toaster/example"> <darknessFactor>0</darknessFactor> </toaster>' The correct request should be: curl -X 'POST' \ 'http://localhost:8181/rests/data/network-topology:network-topology/topology=topology-netconf/node=36001-sim-device/yang-ext:mount/toaster-example:toaster' \ -H 'accept: */*' \ -H 'Content-Type: application/xml' \ -d '<?xml version="1.0" encoding="UTF-8"?> <darknessFactor xmlns="http://netconfcentral.org/ns/toaster/example">0</darknessFactor>' This issue arises because OpenAPI generates a virtual XML wrapper for all XML objects, which, in this specific case, is incorrect. "toaster-example_toaster": { "properties": { "darknessFactor": { "default": 1000, "description": "The darkness factor. Basically, the number of ms to multiple the doneness value by.", "type": "integer", "example": 0, "format": "int64", "uniqueItems": false } }, "xml": { "name": "toaster", "namespace": "http://netconfcentral.org/ns/toaster/example", "attribute": false, "wrapped": false }, "description": "Top-level container for all toaster database objects.", "title": "toaster-example_toaster", "type": "object" } |
| Comments |
| Comment by Ivan Hrasko [ 27/Sep/23 ] |
|
"OpenAPI generates a virtual XML wrapper" - no, that's not an issue. The issue is that we can have only one child of creating resource in the payload. This has been fixed for lists and container in |
| Comment by Ivan Hrasko [ 27/Sep/23 ] |
|
We can do this for JSON but there are problems for XML that:
Thus we can only eliminate this kind requests - when there is no list or container child available. |
| Comment by Ivan Hrasko [ 27/Sep/23 ] |
|
Thus |