data wraz z czasem w parametrze metody

0

hej
mam problem z przekazaniem daty (wraz z godziną minutą i sekundą) w parametrze metody

@GetMapping("{myDate}")
public List<Comment> getComments(@PathVariable @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date myDate)

i to mi działa ale w HHss dostaje zawsze 0000 mimo że podam jakąś godzinę - jak zrobić aby możną było przekazywać tez czas?
dodam że przy encji też mam pole typu Date

1

Path variable ma pewne ograniczenia na znaki które mogą tam być i używanie go w taki sposób to trochę hardkor. Użyj raczej parametrów GET zamiast tego.

0

Korzystasz z java.util.Date czy java.sql.Date?

0

używam

import java.util.Date;
0

1.Java.Util.Date to zło szatan i źródło cierpienia. Uzyć LocalDate
2.Jak wspomniał @Shalom daj do jako parametr GET. Tym bardziej że data średnio pasuje pod path variable, PathVariable to powinnien być jakis id albo nazwa (np. nazwa produktu, nazwa użytkownika etc.)

0

Tak jak napisał Shalom - nie przekazuj daty w urlu, tylko w ciele requesta HTTP, i wtedy POSTa zamiast GETa użyj

0

@Pinek: no chyba nie ogarnąłeś czym się różni Path Variable or geta i że oba są w URLU
Path Variable:
/api/users/{username}/orders/{order_id}
A get parameter:
/api/products?page_number=10&page_size=20

0

@scibi92: wiem o co chodzi, ale dołożyłem swoje 3 grosze, bo według mnie przesyłanie daty w urlu (czy to jako path variable czy jako get parameter) jest dziwne, wolałbym to w payloadzie przesłać

0

Dlaczego niby dziwne? Get jest do geta i tyle, będziesz używał POST żeby pobrać dane? xD

1
scibi92 napisał(a):

Dlaczego niby dziwne? Get jest do geta i tyle, będziesz używał POST żeby pobrać dane? xD

A jak robisz searcha i wysyłasz pełno rzeczy jako kryteria wyszukiwania? Użyjesz geta czy posta? @scibi92

0

No dobra załóżmy, że użyję POST'a, czyli kod będzie wyglądał mniej więcej tak:

@PostMapping
public List<Comment> getComments(@requestBody IcoDalej tutaj)
  1. no własnie i co w param metody i jak to potem odebrać?
  2. co jeśli bede potrzebował np. bettween czyli dwóch dat?
  3. co jeśli bedę potrzebował jeszcze dodatkowo np. id produktu?
0

ICoDalej?

  1. Ano robisz DTO (klase) w stylu CommentQueryDTO, która ma pola m.in. LocalDateTime. Dzięki temu możesz ustawić nie dość ze serializer / deserializer ale i format zwracany. :) Btw. widzę, że zwracasz Listę<Comment> czyli pewnie pchasz to od razu z repo. Bardzo nieładnie. Też powinieneś przemapować do DTO.
  2. Dokładasz pole do DTO
  3. id produktu pewnie pójdzie do patha, albo również dorzucisz do DTO

1 użytkowników online, w tym zalogowanych: 0, gości: 1