Spring Boot proporciona una muy buena soporte para la creación de servicios web RESTful para aplicaciones empresariales. Este capítulo explicará en detalle sobre la construcción de servicios web RESTful utilizando Spring Boot.
Nota-para construir servicios web RESTful, necesitamos agregar la dependencia web de arranque de Spring Boot en el archivo de configuración de compilación.,
si usted es un usuario Maven, use el siguiente código para agregar la siguiente dependencia en su pom.xml file –
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
Si eres usuario de Gradle, usa el siguiente código para agregar la siguiente dependencia en tu compilación.archivo gradle.
compile('org.springframework.boot:spring-boot-starter-web')
el código para el archivo de configuración de compilación completo Maven build – pom.xml se da a continuación –
el código para el archivo de configuración de compilación completa Gradle Build-build.,gradle se da a continuación −
antes de proceder a construir un servicio web RESTful, se sugiere que tenga conocimiento de las siguientes anotaciones –
Rest Controller
la anotación @RestController se usa para definir los servicios web RESTful. Sirve JSON, XML y respuesta personalizada. Su sintaxis se muestra a continuación:
@RestControllerpublic class ProductServiceController { }
asignación de solicitudes
la anotación @RequestMapping se utiliza para definir el URI de solicitud para acceder a los extremos REST. Podemos definir el método de solicitud para consumir y producir objeto. El método de solicitud predeterminado es GET.,
@RequestMapping(value = "/products")public ResponseEntity<Object> getProducts() { }
cuerpo de la solicitud
la anotación @RequestBody se utiliza para definir el tipo de contenido del cuerpo de la solicitud.
public ResponseEntity<Object> createProduct(@RequestBody Product product) {}
variable Path
la anotación @PathVariable se utiliza para definir el URI de solicitud personalizado o dinámico. La variable Path en el URI de solicitud se define como llaves {} como se muestra a continuación –
public ResponseEntity<Object> updateProduct(@PathVariable("id") String id) {}
parámetro de solicitud
la anotación @RequestParam se usa para leer los parámetros de solicitud desde la URL de solicitud. Por defecto, es un parámetro obligatorio., También podemos establecer el valor predeterminado para los parámetros de solicitud como se muestra aquí –
public ResponseEntity<Object> getProduct( @RequestParam(value = "name", required = false, defaultValue = "honey") String name) {}
GET API
el método de solicitud HTTP predeterminado es GET. Este método no requiere ningún cuerpo de solicitud. Puede enviar parámetros de solicitud y variables de ruta para definir la URL personalizada o dinámica.
el código de ejemplo para definir el método de solicitud HTTP GET se muestra a continuación. En este ejemplo, usamos HashMap para almacenar el producto. Tenga en cuenta que utilizamos una clase POJO como el producto a almacenar.
Aquí, el URI de solicitud es / products y devolverá la lista de productos del repositorio HashMap., A continuación se muestra el archivo de clase del controlador que contiene el método GET REST Endpoint.
POST API
la solicitud HTTP POST se utiliza para crear un recurso. Este método contiene el cuerpo de la solicitud. Podemos enviar parámetros de solicitud y variables de ruta para definir la URL personalizada o dinámica.
el siguiente ejemplo muestra el código de ejemplo para definir el método de solicitud HTTP POST. En este ejemplo, usamos HashMap para almacenar el producto, donde el producto es una clase POJO.
aquí, el URI de solicitud es / products, y devolverá la cadena después de almacenar el producto en el repositorio HashMap.,
put API
la solicitud HTTP PUT se utiliza para actualizar el recurso existente. Este método contiene un cuerpo de solicitud. Podemos enviar parámetros de solicitud y variables de ruta para definir la URL personalizada o dinámica.
el ejemplo que se muestra a continuación muestra cómo definir el método de solicitud HTTP PUT. En este ejemplo, usamos HashMap para actualizar el producto existente, donde el producto es una clase POJO.
Aquí el URI de solicitud es / products / {id} que devolverá la cadena después de un producto en un repositorio de HashMap., Tenga en cuenta que utilizamos la variable Path {id} que define el ID de productos que debe actualizarse.
delete API
la solicitud HTTP Delete se utiliza para eliminar el recurso existente. Este método no contiene ningún cuerpo de solicitud. Podemos enviar parámetros de solicitud y variables de ruta para definir la URL personalizada o dinámica.
el ejemplo que se muestra a continuación muestra cómo definir el método de solicitud HTTP DELETE. En este ejemplo, usamos HashMap para eliminar el producto existente, que es una clase POJO.,
el URI de solicitud es / products / {id} y devolverá la cadena después de eliminar el producto del repositorio HashMap. Utilizamos la variable Path {id} que define el ID del producto que debe eliminarse.
esta sección le da el conjunto completo de código fuente. Observe los siguientes códigos para sus respectivas funcionalidades –
La Clase de aplicación principal de Spring Boot-DemoApplication.java
la clase POJO – producto.java
La Clase de controlador Rest-ProductServiceController.,java
Puede crear un archivo JAR ejecutable y ejecutar la aplicación spring boot utilizando los siguientes comandos Maven o Gradle como se muestra −
para Maven, use el comando que se muestra a continuación −
mvn clean install
después de «BUILD SUCCESS», puede encontrar el archivo JAR en el directorio de destino.
para Gradle, use el comando que se muestra a continuación –
gradle clean build
después de «BUILD SUCCESSFUL», puede encontrar el archivo JAR en el directorio build / libs.,
Puede ejecutar el archivo JAR utilizando el comando que se muestra a continuación −
java –jar <JARFILE>
Esto iniciará la aplicación en el puerto Tomcat 8080 como se muestra a continuación −
ahora presione la URL que se muestra a continuación en la aplicación POSTMAN y vea la salida.,
GET API URL is: http://localhost:8080/products
POST API URL is: http://localhost:8080/products
PUT API URL is: http://localhost:8080/products/3
DELETE API URL is: http://localhost:8080/products/3