Articles

Spring Restful Web Services Example with JSON, Jackson and Client Program

Posted by admin

Spring es uno de los frameworks Java EE más utilizados. Anteriormente hemos visto cómo usar Spring MVC para crear aplicaciones web basadas en Java. Hoy vamos a aprender a crear Spring Restful Web Services usando Spring MVC y luego probarlo con el cliente Rest. Al final, también veremos cómo invocar Spring Restful web service utilizando Spring RestTemplate API.,

la Primavera de DESCANSO

vamos a utilizar la Primavera última versión 4.0.0.LIBERE y utilice la integración JSON de Spring Jackson para enviar respuesta JSON en la respuesta de llamada rest. El tutorial se desarrolla en Spring STS IDE para crear código esqueleto Spring MVC fácilmente y luego se extiende para implementar arquitectura Restful.

crear un nuevo proyecto de primavera MVC en el STS, nuestro proyecto final se verá como la imagen de abajo. Analizaremos cada uno de los componentes uno por uno.,

Spring REST Configuration XML Files

Our Pom.el archivo xml se ve a continuación.

PTS herramienta genera el pom.archivo xml para nosotros. Sin embargo, he actualizado la versión Spring Framework, AspectJ, SLF4J y Jackson a la última a partir de hoy. La mayor parte de la parte es común y se genera automáticamente, el punto importante a tener en cuenta es que he añadido bibliotecas JSON Jackson en la dependencia porque vamos a utilizar que para convertir objetos a JSON y viceversa.,

Este archivo se genera automáticamente y no he cambiado nada en eso. Sin embargo, si desea cambiar los archivos de configuración de contexto y su ubicación, puede hacerlo en la web.archivo xml.

Este archivo contiene los recursos compartidos que serán visibles para todos los componentes web, estaremos desarrollando un simple servicio rest y es por eso que no he cambiado nada aquí.

La mayor parte de la pieza se genera automáticamente y contiene configuraciones de placa de caldera., Sin embargo, los puntos importantes a tener en cuenta son el elemento basado en anotaciones para admitir la configuración basada en anotaciones y la conexión MappingJackson2HttpMessageConverter al RequestMappingHandlerAdapter messageConverters para que la API de Jackson se inicie y convierta JSON a Java Beans y viceversa. Al tener esta configuración, usaremos JSON en el cuerpo de la solicitud y recibiremos datos JSON en la respuesta.

Spring REST Model Classes

escribamos una clase POJO simple que servirá como entrada y salida para nuestros métodos de servicio web Restful.,

el único punto importante a tener en cuenta es el uso de @JsonSerialize anotación para usar DateSerializer clase para la conversión de fecha de tipo Java a formato JSON y viceversa.

puntos finales de servicios web RESTful de primavera

tendremos los siguientes puntos finales de servicios Web rest.

Sl.,almacenamiento de datos
2 /descanso/emp/{id} GET Para obtener el Empleado objeto basado en el id
3 /descanso/emp GET Para obtener la lista de todos los Empleados en el almacén de datos
4 /descanso/emp/crear POST Para crear el Empleado objeto y almacenarlo
5 /descanso/emp/eliminar/{id} PONER Para eliminar el Empleado objeto del almacenamiento de datos basado en el id

Tenemos una clase que define todos estos URI como las constantes de Cadena.,

Spring Restful web service Controller class

nuestra clase EmployeeController publicará todos los puntos finales de servicio web mencionados anteriormente. Echemos un vistazo al código de la clase y luego aprenderemos sobre cada uno de los métodos en detalle.

para simplificar, estoy almacenando todos los datos del empleado en el HashMap empData. La anotación @ RequestMapping se utiliza para asignar el URI de solicitud al método handler. También podemos especificar el método HTTP que debe utilizar la aplicación cliente para invocar el método rest.,

la anotación @ ResponseBody se usa para mapear el objeto response en el cuerpo response. Una vez que el objeto response es devuelto por el método handler, MappingJackson2HttpMessageConverter se activa y lo convierte en respuesta JSON.

la anotación@PathVariable es la manera fácil de extraer los datos del URI rest y asignarlos al argumento del método.

la anotación@RequestBody se usa para asignar los datos JSON del cuerpo de la solicitud al objeto Employee, de nuevo esto se hace mediante la asignación MappingJackson2HttpMessageConverter.,

el Resto del código es simple y auto-entendido, nuestra aplicación está listo para la implementación y las pruebas. Simplemente exporte como archivo WAR y cópielo en el directorio de aplicaciones web del contenedor servlet. Si tiene el servidor configurado en el STS, simplemente puede ejecutarlo en el servidor para implementarlo.

estoy usando Wiztools RestClient para invocar las llamadas rest, pero también puedes usar la extensión de Chrome Postman.

a continuación, las capturas de pantalla muestran las diferentes invocaciones de las API rest expuestas por nuestra aplicación y su salida.,

Health Check-Get Dummy Employee Rest Call

Create Employee POST Rest Call: asegúrese de que request Content-Type esté configurado en» application/json», de lo contrario obtendrá el código de Error HTTP 415.,

Get Employee Rest Call

Delete Employee Rest Call

Get All Employees Rest Call

spring REST client program

los clientes rest son buenos para probar nuestro servicio web rest, pero la mayoría de las veces, necesitamos invocar los servicios REST a través de nuestro programa. Podemos usar Spring RestTemplate para invocar estos métodos fácilmente. A continuación se muestra un programa simple que invoca nuestros métodos rest de aplicación utilizando RestTemplate API.,

La mayor parte del programa es fácil de entender, sin embargo, al invocar el método rest que devuelve una colección, necesitamos usar LinkedHashMap porque JSON to object conversion no conoce el objeto empleado y lo convierte en la colección de LinkedHashMap. Podemos escribir un método de utilidad para convertir de LinkedHashMap a nuestro objeto Java Bean.

cuando ejecutamos el programa anterior, obtenemos la siguiente salida en la consola.,

otro punto es que RestTemplate los métodos put no tienen opción para establecer el objeto de respuesta porque el método PUT debería usarse para almacenar algo en el servidor y un simple código de estado HTTP 200 debería ser suficiente.

Eso es todo para el tutorial de la aplicación web Spring Restful. Descargue el proyecto de ejemplo desde el enlace anterior y juegue con él para obtener más información.,

actualización: debido a tantas solicitudes para proporcionar un ejemplo similar con XML, así como el apoyo tanto XML y JSON, he ampliado esta aplicación en Spring REST XML JSON ejemplo para apoyar tanto XML y JSON solicitudes y Respuestas. Le sugiero encarecidamente que pase por eso para ver la belleza del marco de primavera y lo fácil que es lograrlo.

puedes descargar el proyecto completo desde nuestro repositorio GitHub.

Leave A Comment