Spring Boot: RestController
RestController est un controller qui contient des méthodes qui sont mappées avec des routes Mais la valeur de retrour de ces méthodes est le contenu de la vue
Exemple
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/* @RestController :la classe TestsController est un Controller
ses méthodes retourne le contenu de la vue :le response body
*/
@RestController
public class TestsController {
@RequestMapping("/ok")
public String hello(){
/*String :la valeur de retour est le contenu de la vue donc on va pas créer une vue */
/*Hello World est le contenu de la vue en rouge */
return "<b style='color:red'>Hello World!</b>";
}
}
Les types de Retour:Reponse Body
ResponseEntity<String> :le type de retourn est un objet <b>JSON</b> de type
/*HttpStatus:permet d'envoyer le status de la réponse:200,201,404,500...*/
@RequestMapping("/statusOK")
public ResponseEntity<String> statusOK() {
/*le contenu envoyé sera Data:bonjour tout le monde est */
return new ResponseEntity<String> ("Bonjour tout le monde",HttpStatus.OK);
}
/*HttpStatus.CREATED :201*/
@RequestMapping("/statusCreated")
public ResponseEntity<String> CREATED() {
return new ResponseEntity<String> ("Bonjour tout le monde",HttpStatus.CREATED);
}
ResponseEntity<Produit> :le type de retourn est un objet <b>JSON</b> de type
produit
Exemples:
@GetMapping("/{id}")
public ResponseEntity<Produit> detail() {
Produit p=new Produit(1,"tel","hp",52,75);
return new ResponseEntity<>(p, HttpStatus.OK);
}
ResponseEntity<List<Produit>>:le type de retour est un objet <b>JSON</b> qui contient
une liste d'objet Produit'
@GetMapping("/")
public ResponseEntity<List<Produit>> produits() {
List<Produit>listeProduits=produitRepository.findAll();
return new ResponseEntity<>(listeProduits, HttpStatus.OK);
}