как передать список от и до даты в остальных URL в Java - PullRequest
0 голосов
/ 26 октября 2018

Я работаю над передачей списка дат и дат в оставшейся части URL.

Например:

public ResponseEntity<String> periodData(
            @RequestHeader(value = "Authorization") String authorization,
            @PathVariable("partyGroupId") String partyGroupId,
            @RequestBody DateRangeModel dateRangeModel){
               return response;
           }

Вот мой DateRangeModel:

public class DateRangeModel {
    @JsonProperty
    private List<DateRange> dateRanges;

    public List<DateRange> getDateRanges() {
        return dateRanges;
    }

    public void setDateRanges(List<DateRange> dateRanges) {
        this.dateRanges = dateRanges;
    }

}

RequestBody:

{
    "dateRanges": [
        {
          "fromDate": "2018-10-26",
          "toDate": "2018-10-29"
        },
        {
          "fromDate": "2018-10-21",
          "toDate": "2018-10-20"
        }
    ]
}

Не могли бы вы подсказать, как передать эти параметры в почтальон?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Я думаю, что @PathVariable тогда не подходит для этой цели.@PathVariable означает, что параметр является частью URL.Допустим, есть @PathVariable("id") и @RequestMapping(value = "/groups/{id}").Тогда значение id будет передано как параметр {id}.В вашем случае лучший способ добиться результата - создать некоторый класс Model и добавить в него список DateRange в качестве свойства: я только что смоделировал случай, и он прекрасно работает для меня:

public class DateRange {

  private Date fromDate;
  private Date toDate;

  public Date getFromDate() {
    return fromDate;
  }

  public void setFromDate(Date fromDate) {
    this.fromDate = fromDate;
  }

  public Date getToDate() {
    return toDate;
  }

  public void setToDate(Date toDate) {
    this.toDate = toDate;
  }
}

public class DateRangeModel {
  @JsonProperty
  private List<DateRange> dateRanges;

  public List<DateRange> getDateRanges() {
    return dateRanges;
  }

  public void setDateRanges(List<DateRange> dateRanges) {
    this.dateRanges = dateRanges;
  }

  public DateRangeModel() {
  }
}

  @RequestMapping(
      value = "/testapi/test", method = RequestMethod.PUT,
      produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  public @ResponseBody DateRangeModel test(
      @RequestBody DateRangeModel data,
      HttpServletRequest request) {
    return data;
  }

Тело запроса:

{
    "dateRanges": [
        {
          "fromDate": "2018-10-26",
          "toDate": "2018-10-29"
        },
        {
          "fromDate": "2018-10-21",
          "toDate": "2018-10-20"
        }
    ]
}

Ответ:

{
    "dateRanges": [
        {
            "fromDate": 1540501200000,
            "toDate": 1540760400000
        },
        {
            "fromDate": 1540069200000,
            "toDate": 1539982800000
        }
    ]
}

Конечно, проблема десериализации дат вне сцены

0 голосов
/ 26 октября 2018

Можете ли вы просто добавить две даты, такие как fromDate и toDate

public ResponseEntity<String> periodData(
                @RequestHeader(value = "Authorization") String authorization,
                @PathVariable("partyGroupId") String partyGroupId,
                @PathVariable("fromDate") String fromDate,@PathVariable("toDate") String toDate){
                   return response;
               }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...