복잡한 객체의 요청 본문을 각 입력란에 입력 할 때마다 표현할 수 있습니까?Swagger Spring mvc reponsebody
간단한 말로하면 내 api 중 하나가 @RequestBody로 Person (성/이름이 있다고 가정)을 기대하면이 Person에게 Swagger를 제공하는 유일한 방법은 Person의 전체 json을 제공하는 것입니다. 각각의 개별 필드가 예를 들어 성/이름에 대한 별도의 입력을 갖도록하는 방법이 있습니까?
복잡한 객체의 요청 본문을 각 입력란에 입력 할 때마다 표현할 수 있습니까?Swagger Spring mvc reponsebody
간단한 말로하면 내 api 중 하나가 @RequestBody로 Person (성/이름이 있다고 가정)을 기대하면이 Person에게 Swagger를 제공하는 유일한 방법은 Person의 전체 json을 제공하는 것입니다. 각각의 개별 필드가 예를 들어 성/이름에 대한 별도의 입력을 갖도록하는 방법이 있습니까?
당신은 당신의 작업은 당신이 예를 들어
을 찾고 정확히 어떻게해야 @ModelAttribute
를 사용하여 주석을 경우 대신
public void updatePersonName(@RequestBody Person person) { ... }
사용이
public void updatePersonName(@ModelAttribute Person person) { ... }
의 @ModelAttribute는 원시적 인 속성을 확장되고 자신감 UI의 성과 이름에 입력하는 필드를 제공합니다. 그 작업의 동등한은
public void updatePersonName(@RequestParam String firstName,
@RequestParam String lastName) { ... }
기본 스와 저 UI로 스와지나를 사용하고 있습니다. 스 태거 UI 코드를 변경하지 않으면 가능하지 않다고 생각합니다. 그러나 매우 편리한 솔루션은 매개 변수의 유형을 정의한 다음 해당 유형에 대한 모델을 제공하는 것입니다. 예를
"parameters": [
{
"in": "body",
"name": "body",
"description": "A Person",
"required": true,
"type": "Person"
}
]
그리고
"definitions": {
"Person": {
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
}
}
}
}
이 방법의 경우 모델은 UI에 표시하면 요청 본문 텍스트 상자에 복사 한 컨텐츠를 수동으로 채우기 쉽게 할 수 있습니다.
입니다. 단지 옵션 :) thx이지만 – Eugene
이지만 불행히도 이런 일은 일어나지 않습니다. 나는 그 문제도 제기했다 – Eugene
링크? 모델 속성이 getter 및 setter를 사용하여 bean 속성 *이되어야한다는 경고와 함께 작동해야합니다. –
setter 대신에 생성자가 있다면 - 클래스는 변경 불가능합니다. 그게 효과가 있니? – Eugene