After implementing the 'Use first child in POST payloads' changes,
list child nodes no longer include a 'key' value in example payloads.
Removed unnecessary 'post' prefix from schema references
for lists and containers child nodes in POST requests,
enabling the use of a valid schema.
JIRA: NETCONF-1054
Change-Id: I26a07e1ad04a0d08567c31d48d24f19349dd8022
Signed-off-by: Yaroslav Lastivka <yaroslav.lastivka@pantheon.tech>
(cherry picked from commit
65c1945627ad388d4239f4a951aa9d4efc2dba74)
final DataSchemaNode childNode = getListOrContainerChildNode(Optional.ofNullable(node));
if (childNode != null && childNode.isConfiguration()) {
final String childNodeName = childNode.getQName().getLocalName();
final DataSchemaNode childNode = getListOrContainerChildNode(Optional.ofNullable(node));
if (childNode != null && childNode.isConfiguration()) {
final String childNodeName = childNode.getQName().getLocalName();
- final String cleanChildDefName = parentName + "_" + nodeName + CONFIG + "_" + childNodeName + POST_SUFFIX;
+ final String cleanChildDefName = parentName + "_" + nodeName + CONFIG + "_" + childNodeName;
final String childDefName = cleanChildDefName + discriminator;
final String childXmlDefName = cleanChildDefName + XML_SUFFIX + discriminator;
insertPostRequestBodyParameter(childNode, parameters, value, childDefName, childXmlDefName, childNodeName,
final String childDefName = cleanChildDefName + discriminator;
final String childXmlDefName = cleanChildDefName + XML_SUFFIX + discriminator;
insertPostRequestBodyParameter(childNode, parameters, value, childDefName, childXmlDefName, childNodeName,
ApiDocServiceImpl.OAversion.V3_0);
final var jsonNodeToaster = doc.getPaths().get("/rests/data/toaster2:toaster");
verifyPostRequestRef(jsonNodeToaster.path("post"),
ApiDocServiceImpl.OAversion.V3_0);
final var jsonNodeToaster = doc.getPaths().get("/rests/data/toaster2:toaster");
verifyPostRequestRef(jsonNodeToaster.path("post"),
- "#/components/schemas/toaster2_toaster_config_toasterSlot_post",
- "#/components/schemas/toaster2_toaster_config_toasterSlot_post_xml", LIST);
+ "#/components/schemas/toaster2_toaster_config_toasterSlot",
+ "#/components/schemas/toaster2_toaster_config_toasterSlot_xml", LIST);
verifyRequestRef(jsonNodeToaster.path("put"), "#/components/schemas/toaster2_config_toaster_TOP",
"#/components/schemas/toaster2_config_toaster");
verifyRequestRef(jsonNodeToaster.path("get"), "#/components/schemas/toaster2_toaster_TOP",
verifyRequestRef(jsonNodeToaster.path("put"), "#/components/schemas/toaster2_config_toaster_TOP",
"#/components/schemas/toaster2_config_toaster");
verifyRequestRef(jsonNodeToaster.path("get"), "#/components/schemas/toaster2_toaster_TOP",
final var jsonNodeToasterSlot = doc.getPaths().get("/rests/data/toaster2:toaster/toasterSlot={slotId}");
verifyPostRequestRef(jsonNodeToasterSlot.path("post"),
final var jsonNodeToasterSlot = doc.getPaths().get("/rests/data/toaster2:toaster/toasterSlot={slotId}");
verifyPostRequestRef(jsonNodeToasterSlot.path("post"),
- "#/components/schemas/toaster2_toaster_toasterSlot_config_slotInfo_post",
- "#/components/schemas/toaster2_toaster_toasterSlot_config_slotInfo_post_xml", CONTAINER);
+ "#/components/schemas/toaster2_toaster_toasterSlot_config_slotInfo",
+ "#/components/schemas/toaster2_toaster_toasterSlot_config_slotInfo_xml", CONTAINER);
verifyRequestRef(jsonNodeToasterSlot.path("put"),
"#/components/schemas/toaster2_toaster_config_toasterSlot_TOP",
"#/components/schemas/toaster2_toaster_config_toasterSlot");
verifyRequestRef(jsonNodeToasterSlot.path("put"),
"#/components/schemas/toaster2_toaster_config_toasterSlot_TOP",
"#/components/schemas/toaster2_toaster_config_toasterSlot");
"#/components/schemas/toaster2_toaster_toasterSlot_slotInfo");
final var jsonNodeLst = doc.getPaths().get("/rests/data/toaster2:lst");
"#/components/schemas/toaster2_toaster_toasterSlot_slotInfo");
final var jsonNodeLst = doc.getPaths().get("/rests/data/toaster2:lst");
- verifyPostRequestRef(jsonNodeLst.path("post"), "#/components/schemas/toaster2_lst_config_cont1_post",
- "#/components/schemas/toaster2_lst_config_cont1_post_xml", CONTAINER);
+ verifyPostRequestRef(jsonNodeLst.path("post"), "#/components/schemas/toaster2_lst_config_cont1",
+ "#/components/schemas/toaster2_lst_config_cont1_xml", CONTAINER);
verifyRequestRef(jsonNodeLst.path("put"), "#/components/schemas/toaster2_config_lst_TOP",
"#/components/schemas/toaster2_config_lst");
verifyRequestRef(jsonNodeLst.path("get"), "#/components/schemas/toaster2_lst_TOP",
verifyRequestRef(jsonNodeLst.path("put"), "#/components/schemas/toaster2_config_lst_TOP",
"#/components/schemas/toaster2_config_lst");
verifyRequestRef(jsonNodeLst.path("get"), "#/components/schemas/toaster2_lst_TOP",
final var path1 = "/rests/data/container-test:cont";
assertNotNull(containerDoc.getPaths().get(path1));
final var jsonRef1 = getJsonRef(containerDoc, path1);
final var path1 = "/rests/data/container-test:cont";
assertNotNull(containerDoc.getPaths().get(path1));
final var jsonRef1 = getJsonRef(containerDoc, path1);
- assertEquals("{\"cont1\":{\"$ref\":\"#/components/schemas/container-test_cont_config_cont1_post\"}}",
+ assertEquals("{\"cont1\":{\"$ref\":\"#/components/schemas/container-test_cont_config_cont1\"}}",
jsonRef1);
final var xmlRef1 = getXmlRef(containerDoc, path1);
jsonRef1);
final var xmlRef1 = getXmlRef(containerDoc, path1);
- assertEquals("#/components/schemas/container-test_cont_config_cont1_post_xml", xmlRef1);
+ assertEquals("#/components/schemas/container-test_cont_config_cont1_xml", xmlRef1);
final var path2 = "/rests/data/container-test:cont/cont1";
assertNotNull(containerDoc.getPaths().get(path2));
final var jsonRef2 = getJsonRef(containerDoc, path2);
assertEquals("{\"list4\":{\"type\":\"array\",\"items\":{\"$ref\":\""
final var path2 = "/rests/data/container-test:cont/cont1";
assertNotNull(containerDoc.getPaths().get(path2));
final var jsonRef2 = getJsonRef(containerDoc, path2);
assertEquals("{\"list4\":{\"type\":\"array\",\"items\":{\"$ref\":\""
- + "#/components/schemas/container-test_cont_cont1_config_list4_post\"}}}", jsonRef2);
+ + "#/components/schemas/container-test_cont_cont1_config_list4\"}}}", jsonRef2);
final var xmlRef2 = getXmlRef(containerDoc, path2);
final var xmlRef2 = getXmlRef(containerDoc, path2);
- assertEquals("#/components/schemas/container-test_cont_cont1_config_list4_post_xml", xmlRef2);
+ assertEquals("#/components/schemas/container-test_cont_cont1_config_list4_xml", xmlRef2);
final var path3 = "/rests/data/container-test:cont/cont1/list4={key4}";
assertNotNull(containerDoc.getPaths().get(path3));
final var jsonRef3 = getJsonRef(containerDoc, path3);
assertEquals("{\"cont2\":{\"$ref\":\"#/components/schemas/"
final var path3 = "/rests/data/container-test:cont/cont1/list4={key4}";
assertNotNull(containerDoc.getPaths().get(path3));
final var jsonRef3 = getJsonRef(containerDoc, path3);
assertEquals("{\"cont2\":{\"$ref\":\"#/components/schemas/"
- + "container-test_cont_cont1_list4_config_cont2_post\"}}", jsonRef3);
+ + "container-test_cont_cont1_list4_config_cont2\"}}", jsonRef3);
final var xmlRef3 = getXmlRef(containerDoc, path3);
final var xmlRef3 = getXmlRef(containerDoc, path3);
- assertEquals("#/components/schemas/container-test_cont_cont1_list4_config_cont2_post_xml", xmlRef3);
+ assertEquals("#/components/schemas/container-test_cont_cont1_list4_config_cont2_xml", xmlRef3);
final var path4 = "/rests/data/container-test:cont/cont1/list4={key4}/cont2";
assertNotNull(containerDoc.getPaths().get(path4));
final var jsonRef4 = getJsonRef(containerDoc, path4);
assertEquals("{\"list5\":{\"type\":\"array\",\"items\":{\"$ref\":\""
final var path4 = "/rests/data/container-test:cont/cont1/list4={key4}/cont2";
assertNotNull(containerDoc.getPaths().get(path4));
final var jsonRef4 = getJsonRef(containerDoc, path4);
assertEquals("{\"list5\":{\"type\":\"array\",\"items\":{\"$ref\":\""
- + "#/components/schemas/container-test_cont_cont1_list4_cont2_config_list5_post\"}}}", jsonRef4);
+ + "#/components/schemas/container-test_cont_cont1_list4_cont2_config_list5\"}}}", jsonRef4);
final var xmlRef4 = getXmlRef(containerDoc, path4);
final var xmlRef4 = getXmlRef(containerDoc, path4);
- assertEquals("#/components/schemas/container-test_cont_cont1_list4_cont2_config_list5_post_xml", xmlRef4);
+ assertEquals("#/components/schemas/container-test_cont_cont1_list4_cont2_config_list5_xml", xmlRef4);
assertNotNull(listDoc.getPaths().get(path1));
final var jsonRef1 = getJsonRef(listDoc, path1);
assertEquals("{\"list1\":{\"type\":\"array\",\"items\":{\"$ref\":\""
assertNotNull(listDoc.getPaths().get(path1));
final var jsonRef1 = getJsonRef(listDoc, path1);
assertEquals("{\"list1\":{\"type\":\"array\",\"items\":{\"$ref\":\""
- + "#/components/schemas/list-test_cont_config_list1_post\"}}}", jsonRef1);
+ + "#/components/schemas/list-test_cont_config_list1\"}}}", jsonRef1);
final var xmlRef1 = getXmlRef(listDoc, path1);
final var xmlRef1 = getXmlRef(listDoc, path1);
- assertEquals("#/components/schemas/list-test_cont_config_list1_post_xml", xmlRef1);
+ assertEquals("#/components/schemas/list-test_cont_config_list1_xml", xmlRef1);
final var path2 = "/rests/data/list-test:cont/list2={key2}";
assertNotNull(listDoc.getPaths().get(path2));
final var jsonRef2 = getJsonRef(listDoc, path2);
assertEquals("{\"list3\":{\"type\":\"array\",\"items\":{\"$ref\":\""
final var path2 = "/rests/data/list-test:cont/list2={key2}";
assertNotNull(listDoc.getPaths().get(path2));
final var jsonRef2 = getJsonRef(listDoc, path2);
assertEquals("{\"list3\":{\"type\":\"array\",\"items\":{\"$ref\":\""
- + "#/components/schemas/list-test_cont_list2_config_list3_post\"}}}", jsonRef2);
+ + "#/components/schemas/list-test_cont_list2_config_list3\"}}}", jsonRef2);
final var xmlRef2 = getXmlRef(listDoc, path2);
final var xmlRef2 = getXmlRef(listDoc, path2);
- assertEquals("#/components/schemas/list-test_cont_list2_config_list3_post_xml", xmlRef2);
+ assertEquals("#/components/schemas/list-test_cont_list2_config_list3_xml", xmlRef2);
}
private static String getJsonRef(final OpenApiObject openApiObject, final String path) {
}
private static String getJsonRef(final OpenApiObject openApiObject, final String path) {