Introducción

Existen 3 niveles para aplicar API REST en el desarrollo de una Aplicación Web.
Cumplir con estás nos garantiza las mejores practicas para su implementación, integración, estabilidad y escabilidad.
Para detalles se puede consultar  http://asiermarques.com/2013/conceptos-sobre-apis-rest/

Nivel 1. Uso correcto de URIs

  1. Identificar de forma única el recurso
  2. Las URI no deben contener acciones
  3. Independientes del formato
  4. Jerarquía lógica
  5. Los filtrados no se deben hacer en la URI

Nivel 2. HTTP

  1. Usar métodos HTTP; GET, POST, PUT, DELETE y PATCH
  2. Código de estado
  3. Aceptación de tipos de contenido

Nivel 3. Hypermedia

Se vera mas a detalle posteriormente.

Con lo que llevamos hasta este momento, podemos generar un proyecto de API REST en Web con las mejores practicas.
Vamos a retomar la tabla Persona y crear un Sistema Web con API REST para administrar personas; crear, leer, actualizar y eliminar.

Construir aplicación

Crear proyecto

Ir a

File -> New -> Other… -> Spring Boot -> Spring Starter Project

Seleccionamos nombre del proyecto, tipo, versión de java, paquete, entre otras opciones. Clic en Next>. Seleccionamos la versión de Spring Boot y las dependencias:

  1. JPA
  2. H2
  3. MySQL
  4. Web

Clic en Next> y posteriormente clic en Finish.

Crear paquetes

Creamos los paquetes

  • com.mio.administrar.controller
  • com.mio.administrar.repository
  • com.mio.administrar.entity

Copiar clases e interfaces

Tomando las clases e interfaces del proyecto anterior https://github.com/arielolivagh/gs-rest-service-complete/tree/v2.0  copiamos:

  • La clase PersonaController al paquete com.mio.administrar.controller
  • La interface PersonaRepository al paquete com.mio.administrar.repository
  • La clase Persona al paquete com.mio.administrar.entity

Conexión a la Base de Datos

Escribimos los parámetros de conexión a la Base de Datos en el archivo application.properties.

Crear consulta para búsqueda de personas por id

En la clase repository vamos a crear un nuevo query para obtener una persona por su id.

Crear controller de calidad

Crear personas

  • Método POST
  • La respuesta es Json
  • Documentación JavaDoc

    Consumir:

Leer todas las personas

  • Método GET
  • La respuesta es Json
  • ocumentación JavaDoc

    Consumir:

Leer una persona

  • Método GET
  • La respuesta es Json
  • Documentación JavaDoc

    Consumir:

Actualiza una persona

  • Método PUT
  • La respuesta es Json
  • Documentación JavaDoc

    Consumir:

Actualiza edad de una persona

  • Método PATCH
  • La respuesta es Json
  • Documentación JavaDoc

    Consumir:

Elimina todas las personas

  • Método DELETE
  • La respuesta es Json
  • Documentación JavaDoc

    Consumir:

Elimina una persona

  • Método DELETE
  • La respuesta es Json
  • Documentación JavaDoc

    Consumir:

Otras

Descargar proyecto

Se puede descargar el proyecto completo de https://github.com/arielolivagh/administrarPersona/tree/v1.0

Categories: API REST, Spring, SpringBoot

2 Responses so far.

  1. Edu dice:

    He visto muchas cosas que me han llamado la atención. Y quería comentar algunas para que la gente no copie los errores que veo aquí, sobretodo que no piensen que estamos haciendo un «controller de calidad» siguiendo estos pasos.

    En cuanto al controlador:
    Nunca puede haber una respuesta de un json con un simple String hardcodeado en el propio método, como en createPersona el String que devuelves….»Agregado correctamente»
    Por otro lado, es confuso tener un método en el controlador llamado readPersonaById que devuelva una lista con todas las personas

    Repositorio:
    La query así de simple se podría hacer utilizando filtros de CrudRepository y deducir la consulta a partir del nombre, en este caso:
    Persona findById(id)

    Hay unos cuantos gazapos, creo que no estaría mal darle un repaso para evitar confundir a la gente que llega aquí buscando información de ayuda.

    • Ariel dice:

      Me parecen lógicas tus sugerencias. Voy a documentarme sobre los puntos y si son exactas hago las correcciones. Gracias.

Leave a Reply


Orígenes de Datos SQL Server en WebLogic

Contenido1 Orígenes de Datos1.1 Configurar Jtds1.2 Configurar Driver propio de […]

Instalar Weblogic 12

Contenido1 Descargar2 Instalar2.1 Instalar WebLogic2.2 Configurar dominio3 Validar instalación y […]

API REST 5. Hypermedia

Contenido1 Introducción2 Programar hypermedia2.1 Crear Entity2.1.1 PersonaHateoas2.1.2 GrupoHateoas2.1.3 PaisHateoas2.2 Crear […]

API REST 4. Calidad al implementar aplicacion Web

Contenido1 Introducción1.1 Nivel 1. Uso correcto de URIs1.2 Nivel 2. […]

API REST 3. Publicar y consumir

Contenido1 Descripción2 Publicar y Consumir2.1 Usando CRUD2.1.1 Crear Persona2.1.2 Consultar […]