เรามีของจาวา SpringBoot รูปแบบ api endpoint และเราผ่านเป็น RequestBody ของ NotifyMoiChanges ชั้นเรียนประเภทนี้ได้นะ ใน NotifyMoiChanges นางแบบชั้นเรียนเราจะมีหนึ่งยื่นซึ่งเป็นส่วนติดต่อแบบนั้น
Endpoint snippet:
@PostMapping("/notifyMOIChanges")
public ResponseEntity<Void> notifyMOIChangesPost(@RequestBody NotifyMoiChanges notifyMoiChanges) {
logger.info("Received notifyMOIChanges request.");
return ResponseEntity.noContent().build();
}
RequestBody รุ่น snippet:
public class NotifyMoiChanges {
@JsonProperty("moiChanges")
@Valid
private List<MoiChange> moiChanges = new ArrayList<MoiChange>();
..... other attributes
}
public class MoiChange {
@JsonProperty("operation")
private String operation = null; //operation value can be "Type1" or "Type2"
@JsonProperty("value")
private OneOfMoiChangeValue value = null; //value filed can be mapped with any of the OneOfMoiChangeValue Interface implentations Type1MoiChangeValue or Type2MoiChangeValue.
}
OneOfMoiChangeValue เป็นส่วนติดต่อซึ่งมีสองคน implementations Type1MoiChangeValue&Type2MoiChangeValue.
ตอนนี้เมื่อฉันมองผ่านเป็น RequestBody ดูจากรอง'ปฏิบัติการ'ยื่นข้อมูลของฉันต้องบนแผนที่ของ'ค่า'สนามขอร้องของร่างกับเรื่องของส่วนติดต่อ implementations Type1MoiChangeValue หรือ Type2MoiChangeValue.
public interface OneOfMoiChangeValue {
}
Type1MoiChangeValue:
@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-11-16T11:51:46.436+05:30[Asia/Calcutta]")
public class Type1MoiChangeValue extends ArrayList<Type2MoiChangeValue > implements OneOfMoiChangeValue {
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
return true;
}
@Override
public int hashCode() {
return Objects.hash(super.hashCode());
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class Type1MoiChangeValue {\n");
sb.append(" ").append(toIndentedString(super.toString())).append("\n");
sb.append("}");
return sb.toString();
}
/**
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
*/
private String toIndentedString(java.lang.Object o) {
if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n ");
}
}
Type2MoiChangeValue:
@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2021-11-16T11:51:46.436+05:30[Asia/Calcutta]")
public class Type2MoiChangeValue extends HashMap<String, Object> implements OneOfMoiChangeValue {
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
return true;
}
@Override
public int hashCode() {
return Objects.hash(super.hashCode());
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class Type2MoiChangeValue {\n");
sb.append(" ").append(toIndentedString(super.toString())).append("\n");
sb.append("}");
return sb.toString();
}
/**
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
*/
private String toIndentedString(java.lang.Object o) {
if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n ");
}
}
เรากำลังใช้ตัวกระจายคำแจ็คสัน. ฉันต้องทำยังมัน ได้โปรดแนะนำ!