Aktywne Wpisy
Showse +705
W Anglii w czasach wiktoriańskich najtańszą formą zakwaterowania było "Penny hang", czyli spanie na linie za grosz. W Polsce można by rozszerzyć pomysł starych anglików i wprowadzić "Linostówki" inwestycyjne w pobliżu korpo lub zakładów produkcyjnych.
#nieruchomosci
#nieruchomosci
frugASS +510
3 screeny są, Kotlin + Groovy + Spring.
1. RestController
@RestController
@RequestMapping("/search")
class SearchApi(
private val searchService: SearchService
){
@PostMapping
suspend fun postSearch(
@RequestHeader("Authorization") authorization: String,
@RequestBody request: PostSearchRequestDto
): ResponseEntity<SearchDto> {
return searchService.startSearch(authorization, request)
.let { ResponseEntity.ok(it) }
}
}
2. Strzelam do endpointa z tego controllera za pomocą TestRestTemplate
restTemplate.postForEntity("http://localhost:$port/search", request1, String.class)
3. Request wygląda tak
def headers1 = createMultiValueMap(["Authorization": user1.id, "Content-Type": MediaType.APPLICATION_JSON_VALUE]) as MultiValueMap<String, String>
def request1 = new HttpEntity<>(requestBody1, headers1)
Dostaję 415:
Tymczasem strzał curlem działa se:
curl localhost:8080/search?id=1 -H "Authorization:1"
#programowanie #kotlin #java
Komentarz usunięty przez autora
@noipmezc: w headerach
powinieneś tam mieć jakiś HttpRequest servlet filter/listener (nie pamiętam jak się nazywało) przed requestem w osobnej warstwie i ustawiać SecurityContext. Zwykły controller powinien sobie stukać tylko do serwisu autoryzacyjnego, który przekazuje dane kto jest autorem (dane z tokenu)
Problem jest z tym RequestBody coś chyba, bo jak dam tu Stringa to smiga
data class PostSearchRequestDto(
val playerDto: PlayerDto,
val teamPreferenceDto: TeamPreferenceDto
) {
}
rozwiązałem se
Spring nie umi przekonwertować se liczby z jsona na UInt