Как передать HashSet на сервер для тестирования API от почтальона? - PullRequest
0 голосов
/ 29 апреля 2019

Я создал API, который хочу протестировать с помощью почтальона.Мой API принимает много параметров, и один параметр - HAshSet.Я не знаю, как передать параметр HashSet с помощью почтальона.Пожалуйста, помогите мне.Заранее спасибо

Вот мой код:

@PutMapping
    @ApiOperation(value = "collectMultiInvoices", nickname = "collectMultiInvoices")
    public BaseResponse collectAmountMultipleInvoices(@RequestParam(value = "invoice_id") HashSet<Integer> invoiceIds,
                                      @RequestParam("date") String _date,
                                      @RequestParam(value = "cash", required = false) Float cashAmount,
                                      @RequestParam(value = "chequeAmount", required = false) Float chequeAmount,
                                      @RequestParam(value = "chequeNumber", required = false) String chequeNumber,
                                      @RequestParam(value = "chequeDate", required = false) String _chequeDate,
                                      @RequestParam(value = "chequeImage", required = false) MultipartFile chequeImage,
                                      @RequestParam(value = "chequeBankName", required = false) String chequeBankName,
                                      @RequestParam(value = "chequeBankBranch", required = false) String chequeBankBranch,
                                      @RequestParam(value = "otherPaymentAmount", required = false) Float otherPaymentAmount,
                                      @RequestParam(value = "otherPaymentType", required = false) Integer otherPaymentType,
                                      @RequestParam(value = "otherPaymentTransactionId", required = false) String otherPaymentTransactionId,
                                      @RequestParam(value = "discountPercentorAmount", required = false) String discountPercentorAmount,
                                      @RequestParam(value = "discountId", required = false) String discountId) throws AppException.RequestFieldError, AppException.CollectionAmountMoreThanOutstanding {


//method implementation

}

1 Ответ

0 голосов
/ 29 апреля 2019

A Set или HashSet - это концепция Java.Нет такой вещи, как Set с точки зрения HTTP, и нет такой вещи, как Set в Почтальоне.Итак, из Почтальона, вам нужно отправить invoice_ids в формате, который библиотека синтаксического анализа Spring может преобразовать в HashSet.Как отметил @Michael в комментариях, один из способов сделать это - разделить запятую invoice_id следующим образом: invoice_id=id1,id2,id3.Когда Spring обрабатывает этот запрос, он увидит, что вы ожидаете данные в форме HashSet, поэтому он попытается преобразовать id1,id2,id3 в HashSet<Integer>, что он знает, как сделать автоматически.

Примечание: если вам не требуется HashSet, считается хорошей практикой объявлять ваш тип, используя интерфейс вместо реализующего подкласса.Поэтому в этой ситуации я бы рекомендовал изменить сигнатуру вашего метода так, чтобы она принимала Set<Integer> вместо HashSet<Integer>

...