[5] Estilo RestFul

5. Estilo RestFul

5.1. Concepto

Restful es un estilo de posicionamiento y operación de recursos. No es un estándar ni un acuerdo, es solo un estilo. El software diseñado en base a este estilo puede ser más conciso, más estratificado y más fácil de implementar mecanismos como el almacenamiento en caché.

5.2, función

Recursos: todo lo que hay en Internet se puede abstraer como recursos

Operaciones de recursos: use POST, DELETE, PUT, GET y use diferentes métodos para operar con los recursos.

Agregar, eliminar, modificar y consultar respectivamente.

5.3. Operar los recursos de forma tradicional

¡A través de diferentes parámetros para lograr diferentes efectos! Método único, publicar y obtener

http://127.0.0.1/item/queryItem.action?id=1 consulta, OBTENER

http://127.0.0.1/item/saveItem.action agregado, POST

http://127.0.0.1/item/updateItem.action actualización, POST

http://127.0.0.1/item/deleteItem.action?id=1 eliminar, OBTENER o PUBLICAR

5.4, ​​use recursos operativos RESTful

¡Se pueden lograr diferentes efectos a través de diferentes métodos de solicitud! De la siguiente manera: La dirección de solicitud es la misma, ¡pero la función puede ser diferente!

http://127.0.0.1/item/1 consulta, OBTENER

http://127.0.0.1/item nuevo, POST

http://127.0.0.1/item update, PUT

http://127.0.0.1/item/1 eliminar, ELIMINAR

5.5, prueba

  1. Crea una nueva clase RestFulController

    @Controller
    public class RestFulController {
          
          
    }
    
  2. Puede usar la anotación @PathVariable en Spring MVC para vincular el valor del parámetro del método a una variable de plantilla URI.

    package com.kuber.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.*;
    
    @Controller
    public class RestFulController {
          
          
    
        @RequestMapping("/add/{a}/{b}")
        public String test1(@PathVariable int a, @PathVariable String b, Model model){
          
          
            String res = a + b;
            model.addAttribute("msg","加法结果1为:"+res);
            return "controller1";
        }
    }
    
  3. Solicitar resultados de prueba

    Inserte la descripción de la imagen aquí

  4. Pensando: ¿Cuáles son los beneficios de usar variables de ruta?

    • Haz el camino más conciso;

    • Es más conveniente obtener parámetros y el marco realizará automáticamente la conversión de tipos.

    • Los parámetros de acceso se pueden restringir por el tipo de la variable de ruta. Si los tipos son diferentes, no se puede acceder al método de solicitud correspondiente. Por ejemplo, si la ruta de acceso es / commit / 1 / a, entonces la ruta no coincide con el método y no será el parámetro Conversión fallida. El de arriba es int y el otro es string. Aquí cambiamos a dos ints e ingresamos la ruta para ver el resultado

      Inserte la descripción de la imagen aquí

    • Inserte la descripción de la imagen aquí

    • @Controller
      public class RestFulController {
              
              
      
          @RequestMapping("/add/{a}/{b}")
          public String test1(@PathVariable int a, @PathVariable int b, Model model){
              
              
              int res = a + b;
              model.addAttribute("msg","加法结果1为:"+res);
              return "controller1";
          }
      
      }
      

5.6, use el atributo de método para especificar el tipo de solicitud

Se utiliza para restringir el tipo de solicitud, lo que puede limitar el alcance de la solicitud. Especifique el tipo de predicado de solicitud, como GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE, etc.

Probémoslo:

  • Agregar un método

    	//映射访问路径,必须是POST请求
        @RequestMapping(value = "/hello",method = RequestMethod.POST)
        public String test2(Model model){
          
          
            model.addAttribute("msg","hello!!!");
            return "controller1";
        }
    
  • Usamos la barra de direcciones del navegador para acceder a la solicitud de obtención predeterminada y se informará el error 405:
    Inserte la descripción de la imagen aquí

  • Si modifica POST a GET, es normal

    @RequestMapping(value = "/hello",method = RequestMethod.GET)
    public String test2(Model model){
          
          
        model.addAttribute("msg","hello!!!");
        return "controller1";
    }
    

    Inserte la descripción de la imagen aquí

resumen:

La anotación @RequestMapping de Spring MVC puede manejar métodos de solicitud HTTP, como GET, PUT, POST, DELETE y PATCH.

Todas las solicitudes de la barra de direcciones serán HTTP GET de forma predeterminada.

Las variantes de anotación a nivel de método son las siguientes: anotación combinada

@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping

@GetMapping es una anotación combinada y se usará con más frecuencia.

Lo que reproduce es un atajo de @RequestMapping (método = RequestMethod.GET).

Supongo que te gusta

Origin blog.csdn.net/weixin_43215322/article/details/111243019
Recomendado
Clasificación