2017-01-21 18 views
1

Мне нужно передать массив объектов в качестве параметра в java Swagger UI. Я не могу этого сделать. Однако я могу легко передать массив строк в качестве параметров. Но Невозможно определить, как передать массив объектов, вложенных в другой класс или DTO. Я использую Java Spring и разрабатываю веб-сервис RESTful.Как передать массив объектов в качестве параметра в пользовательском интерфейсе Java swagger?

Ниже мой первый DTO, который передается как ModelAttribute в моем REST API в качестве параметра:

public class BusinessDetailsDTO { 

    private BusinessMembersDTO[] businessMembers; 

    public BusinessMembersDTO[] getBusinessMembers() { 
     return businessMembers; 
    } 
    public void setBusinessMembers(BusinessMembersDTO[] businessMembers) { 
     this.businessMembers = businessMembers; 
    } 
} 

Ниже второго DTO которого массив выполнен свойство в 1 DTO:

public class BusinessMembersDTO { 

    private String ownerRole; 
    private String businessLocation; 
    private Long memberId; 
    //getter setter below 
} 

Ниже приводится определение метода контроллера:

@ApiOperation(value = "Add business info") 
    @RequestMapping(method = RequestMethod.POST, value = "/addBusinessInfo", produces={"application/json"}) 
    @ApiResponses(value = { 
      @ApiResponse(code = 200, message = "Success", response = ResponseEntity.class), 
      @ApiResponse(code = 401, message = "Unauthorized"), 
      @ApiResponse(code = 403, message = "Forbidden"), 
      @ApiResponse(code = 404, message = "Not Found"), 
      @ApiResponse(code = 500, message = "Failure") }) 
    public ResponseEntity<BusinessDetails> addBusinessInfo(@RequestParam(
      @ModelAttribute BusinessDetailsDTO businessDetailsDTO) { 

Моя проблема в том, что я не в состоянии выяснить, как следует передавать значения ownerRole, которые присутствуют в BusinessMembersDTO. Пользовательский интерфейс swagger показывает Array[] в столбце DataType рядом с полем businessMembers.

Справка Plz.

+0

Will имея 'BusinessDetailsDTO' удерживайте список 'BusinessMembersDTO' (в отличие от массива' BusinessMembersDTO'), помогающий определить столбец DataType Swagger UI? – MrMister

+0

Никогда не думал об этом. Хотя это выглядит многообещающе для меня. Попробует и вернется обратно с результатом. Спасибо –

+0

Его все еще Не работает. добавил 'private List businessMembersDTO;' в 1-м DTO, но не повезло –

ответ

0

Попробуйте поставить BusinessDetailsDTO непосредственно в ответ на ApiResponse как ниже

@ApiResponse (код = 200, сообщение = "Успех", ответ = BusinessDetailsDTO.class)

+0

Мне нужно получить BusinessDetailsDTO в качестве параметра, а не о отправке в ответ. –

+0

RequestParam может быть буквальным. Вы можете попробовать @RequestBody –

+0

не полезно. То, что вы говорите мне, не связано с проблемой, о которой я говорил в своем вопросе. –