Я должен передать список студентов в операции отдыха.Список студентов определяется следующим образом:
- name: student-list
in: query
description: Id of the Student of the target NF
content:
application/json:
schema:
type: array
items:
$ref: 'TS29571_CommonData.yaml#/components/schemas/StudentId'
minItems: 1
Где каждый элемент определяется следующим образом:
StudentId:
type: object
properties:
class:
type: string
rollno:
type: integer
В соответствии с представлением выше, я должен передать массив StudentId json (with style = form и explode = true).
Согласно коду, сгенерированному OpenAPI Generator, операция, требующая список Student, выполняет итерации по каждому StudentId в списке.Для каждого StudentId он вызывает метод toString для генерации представления json. StudentId Object
Объект StudentId имеет следующий метод toString:
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class StudentId {\n");
sb.append(" class: ").append(toIndentedString(mcc)).append("\n");
sb.append(" rollno: ").append(toIndentedString(mnc)).append("\n");
sb.append("}");
return sb.toString();
}
И метод toIndentedString определяется следующим образом:
private String toIndentedString(Object o) {
if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n ");
}
Мой вопрос: почему OpenAPI не генерирует правильный код.Метод toString не генерирует действительный json (так как jSON начинается с «class StudentId» и он загромождается «\ n»}.
Этот вопрос не является дубликатом существующего вопроса. Здесь я задаю вопрос об отправке массива объектов jsonс style = form и explode = false. Существующий вопрос не дает решения моей проблемы.