Inyección de dependencias
Es uno de los cinco principios de diseño de software S.O.L.I.D:
- Single responsibility.
- Open/Closed.
- Liskov substitution.
- Interface segregation.
- Dependency inversion.
La inversión de dependencia puede ser usado con el patrón de diseño inyección de dependencias que consiste en pasar la dependencia a la clase que lo va a utilizar en lugar de crearla internamente dentro esa clase. Esto con el fin de no acoplar la clase a la implementación que está utilizando.
La inversión de control (IoC) menciona que un framework es quien toma control de los objetos. En este caso Spring. El cual se encarga de crear y administrar instancias de objetos que se conocen como beans o componentes.
Entonces Spring usa la notación @Autowired para la inyección de dependencias.
Servicio de la capa del dominio
El servicio de dominio actúa como intermediario entre el controlador de la API y el repositorio. En spring se decora la clase con la anotación @Service.
El servicio trabaja en términos del dominio no la persistencia directamente. Se hace uso de los repositorios del dominio.
Exponer API
El controlador hace uso de alguna instancia de un servicio para obtener, guardar, actualizar o eliminar información.
- @RestController: se usa para exponer la clase de la API.
- @RequestMapping(“/ruta”): indica la ruta para exponer la clase.
- @GetMapping(“/ruta”): obtener información desde un método en el controlador.
- @PostMapping(“/ruta”): guardar o actualizar información desde un método en el controlador.
- @DeleteMapping(“/ruta”): borrar algún registro desde un método en el controlador.
Las rutas pueden llevar variables usando {variable} y se pueden usar estas variables con la anotación @PathVariable(“variable”) al comienzo de cada argumento en la firma del método.
Controlar las respuestas HTTP
Para controlar los llamados (peticiones) que reciben los endpoints se usan códigos HTTP (HttpStatus) particulares con ResponseEntity; algunos de los posibles estados son:
- HttpStatus.OK
- HttpStatus.NOT_FOUND
- HttpStatus.CREATED
Documentar API con Swagger
Swagger permite documentar la API, alguna de sus anotaciones son:
- @Configuration: indica en qué clase estará la configuración de Swagger.
- @EnableSwagger2: indica que se habilita Swagger en la clase.
- @Bean
- @ApiOperation(“description”): indica la descripción de un método del controlador de la API.
- @ApiResponse(code = int, message = String): tipo de código.
- @ApiParam(value = String, required = boolean, example = String): permite describir el parámetro del algún método.
Desplegar API
Para desplegar la aplicación autocontenida, basta con generar un archivo .jar o .war. Se debe asignar un número de versión a nuestra aplicación, además se debe asignar el archivo properties – de producción – que se usará. Todo esto se puede realizar desde la ventana de comandos (terminal).
Con este archivo generado se puede usar la aplicación desde la nube u otro computador.
Comentarios
Publicar un comentario