HTTP-pyyntöjen ja -vastausten käsittely
Oppikaa käsittelemään pyyntöparametreja, polkumuuttujia ja pyyntörunkoja sekä muodostamaan asianmukaisia HTTP-vastauksia.
HTTP-pyyntöjen ja -vastausten käsittely on ilmainen Spring Boot 4:n kattava opas-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Spring Boot 4:n kattava opas-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Spring Boot 4:n kattava opas-kurssilla on yhteensä 4 oppituntia.
Pyynnöt ja vastaukset
Kun käytät verkkosovellusta, selaimesi lähettää palvelimelle HTTP-pyynnön. Palvelin käsittelee pyynnön ja lähettää takaisin HTTP-vastauksen.
Spring Bootissa kirjoitamme koodia, joka kuuntelee näitä pyyntöjä, poimii niistä tietoja, suorittaa toimintoja ja muodostaa sitten sopivan vastauksen.
Kyselyparametrien hakeminen: @RequestParam
Joskus URL-osoitteeseen lisätään ylimääräisiä tietoja ?-merkin jälkeen, esimerkiksi /search?keyword=java. Näitä kutsutaan kyselyparametreiksi.
Spring Boot käyttää @RequestParam-annotaatiota näiden arvojen poimimiseen helposti metodin parametreihin.
Live-esittely: @RequestParam
Kokeile suorittaa tämä esimerkki. Kun sovellus on käynnistynyt, avaa selaimesi tai esimerkiksi Postman ja siirry osoitteeseen http://localhost:8080/hello?name=Coddy. Katso, mitä tapahtuu!
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
@GetMapping("/hello")
public String sayHello(
@RequestParam(defaultValue = "Guest") String name) {
return "Hello, " + name + "!";
}
}Tietojen poimiminen polusta: @PathVariable
Toisinaan tärkeä tieto on suoraan URL-osoitteen polussa, esimerkiksi /users/123. Tässä 123 on tunniste.
@PathVariable-annotaation avulla voit poimia nämä URL-osoitteen muuttuvat osat suoraan metodin parametreihin.
Live-esittely: @PathVariable
Suorita tämä sovellus ja siirry sitten selaimessasi osoitteeseen http://localhost:8080/items/apple tai http://localhost:8080/items/banana.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
@GetMapping("/items/{itemName}")
public String getItemDetails(@PathVariable String itemName) {
return "You requested item: " + itemName;
}
}Kyselyparametri vai polkumuuttuja: milloin niitä käytetään?
- @RequestParam: Käytä valinnaiseen suodatukseen, lajitteluun tai sivutukseen (esimerkiksi
/products?category=books&page=1). - @PathVariable: Käytä tietyn resurssin tunnistamiseen (esimerkiksi
/users/{id}tai/products/{sku}). Se on olennainen resurssin yksilöimisessä.
Tietosisällön käsittely: @RequestBody
Kun resursseja luodaan tai päivitetään (POST- ja PUT-pyynnöt), asiakkaat lähettävät usein monimutkaisia tietoja, kuten JSON- tai XML-dataa, pyynnön rungossa.
@RequestBody-annotaatio muuntaa tämän rungon sisällön automaattisesti Java-olioksi Springin sisäänrakennettujen viestimuuntimien ansiosta.
Live-esittely: @RequestBody
Suorita tämä. Lähetä esimerkiksi Postmanilla POST-pyyntö osoitteeseen http://localhost:8080/users ja sisällytä siihen seuraava JSON-runko:
{"id":1, "name":"Coddy"}
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
// Define a simple User class
public static class User {
private Long id;
private String name;
// Getters and setters for JSON mapping
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
@PostMapping("/users")
public String createUser(@RequestBody User user) {
return "User created: ID=" + user.getId() +
", Name=" + user.getName();
}
}Mukautetut vastaukset: ResponseEntity
Oletusarvoisesti Spring palauttaa usein String-arvon tai Java-olion, jonka Spring muuntaa JSON- tai XML-muotoon ja jonka tilakoodi on 200 OK.
Jos tarvitset enemmän hallintaa erityisesti HTTP-tilakoodeihin, kuten 201 Created ja 404 Not Found, käytä ResponseEntity-luokkaa. Sen avulla voit määrittää rungon, tilakoodin ja otsakkeet täsmällisesti.
Pikatarkistus: pyyntöjen käsittely
Oletetaan, että Spring Bootin REST-päätepiste hakee käyttäjän tämän yksilöllisen tunnisteen perusteella, esimerkiksi osoitteesta /api/users/5. Millä annotaatiolla 5 voidaan parhaiten poimia URL-osoitteesta?
Oppitunnin yhteenveto
Olemme käsitelleet, miten Spring Boot helpottaa HTTP-pyyntöjen käsittelyä:
@RequestParamkyselyparametreille (valinnaiset tiedot).@PathVariablepolkumuuttujille (resurssien tunnisteet).@RequestBodypyyntörungon sisällön muuntamiseen Java-olioiksi.ResponseEntityHTTP-vastausten tarkkaan hallintaan, tilakoodit mukaan lukien.
Näiden annotaatioiden hallitseminen on olennaista vankkojen RESTful API -rajapintojen rakentamisessa!
Opi Java tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 21
- Oppitunnit
- 84
Usein kysytyt kysymykset
Onko oppitunti ”HTTP-pyyntöjen ja -vastausten käsittely” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Spring Boot 4:n kattava opas-oppimispolun 3 oppituntia, myös oppitunnin “HTTP-pyyntöjen ja -vastausten käsittely”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Spring Boot 4:n kattava opas-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”HTTP-pyyntöjen ja -vastausten käsittely”?
Oppikaa käsittelemään pyyntöparametreja, polkumuuttujia ja pyyntörunkoja sekä muodostamaan asianmukaisia HTTP-vastauksia. Harjoittelet Spring Boot 4:n kattava opas-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Spring Boot 4:n kattava opas-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Spring Boot 4:n kattava opas-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”HTTP-pyyntöjen ja -vastausten käsittely”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Spring Boot 4:n kattava opas-oppitunnilla?
Kyllä. Jokainen Spring Boot 4:n kattava opas-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- REST-ohjainten luominen
- HTTP-pyyntöjen ja -vastausten käsittely
- Syötteen validointi ja virheenkäsittely
- REST-API:en dokumentointi OpenAPI:lla ja Swaggerilla