Академический Документы
Профессиональный Документы
Культура Документы
- Asociación
- Dependencia:
- Agregación:
- Composición:
- Herencia (Generalización/especialización):
- Realización:
- Una Interfaz
- Una entidad base
- Tres entidades concretas
- Es orientado a recursos.
- Cada recurso posee un identificador único (UUID o GUID).
- Comunicación stateless (sin estado).
- Utiliza como base el protocolo HTTP para la comunicación.
- El recurso tiene más de una manera de representación.
- La implementación y la representación interna de un recurso
debe de ser privada y no accesibe al exterior.
• /books/{id}/chapters/{id}
• /books/chapters/
• /books/{id}/authors
• /books/{id}/libraries/{libraryId}
• /books/{id}/loan/
• /books/destroy
• /books/V01/notificationServices
Es una entidad que se utiliza para poder encerrar atributos simples o complejos, esta NO
representa una entidad de negocio, es decir está hecha a la media.
¿Qué ocurre con las acciones que no corresponden a las operaciones CRUD?
Aquí es donde las cosas pueden confundirse. Hay un número de enfoques:
- Reestructurar la acción para que aparezca como un campo de un recurso. Esto
funciona si la acción no toma parámetros. Por ejemplo, un acción “activate” puede ser
asignada a un campo booleano activated y actualizado vía PATCH al recurso.
- A veces realmente no hay forma de mapear la acción a una estructura REST apropiada.
Por ejemplo, una búsqueda multi-recurso no tiene sentido ser asignada a un endpoint
de un recurso específico.
- En este caso, /search podría tener más sentido incluso si no es un sustantivo. Esto está
BIEN – sólo habrá que tener en cuenta en realizar lo que sea correcto desde la
perspectiva del consumidor del servicio y asegurarnos de que esté claramente
documentado para evitar confusiones.
Ejemplos:
/api/utils/sendMail/
/api/persons/validateIdentity
10/11/2017 GFT MÉXICO 36
Emboltorios o Wrappers
Ejercicio: Considerar el caso de la creación de una entidad Customer que tiene la siguiente
característica:
- Como parámetro de entrada se requiere forzosamente recibir el id del usuario operante
de la terminal.
Ejemplos:
/reserva/123/completar
/reserva/123?action=completar
/books/?start=1&end=2
/books/chapters
{
"title": "Galaxy S8",
"description": "Un diseño que revoluciona todo lo que existe hasta ahora. Su
pantalla es más grande y brinda una vista envolvente. No lo pienses más y
llévate el Samsung Galaxy S8 en Plan Telcel o Amigo Kit a buen precio.",
"url": "/personas/equipos/telefonos-y-smartphones/samsung/sm-
g950f.html"
}
http://myserver.com/contexto/recurso?action=1
Los servicios de este nivel usan los principales métodos del protocolo
HTTP (GET, POST, PUT, DELETE). Ya se encuentran varios endpoints
identificados con el uso de verbos correctos de HTTP.
http://myserver.com/contexto/empleado
Usa GET para consulta de empleados
Usa POST para alta de empleado
Usa PUT para actualizar empleado
Usa DELETE para eliminar empleado
10/11/2017 GFT MÉXICO 54
Nivel 3
Los servicios que están en este nivel retornan enlaces que permiten al
cliente descubrir operaciones y obtener referencias a otros recursos. El
servicio es autodescriptivo y el cliente va navegando por los resultados
para invocar las operaciones. Esto se le llama Hipermedia (HATEOAS).
http://myserver.com/mitienda
Regresa mediante headers y estatus la navegación y URI para realizar
acciones. La navegación es programática y condicionada a acciones
previas y estado de la aplicación de datos.
10/11/2017 GFT MÉXICO 55
Ejercicio práctico de Servicio Rest
Se requiere lo siguiente:
- Instalar nodejs.
- Instalar npm.
- Instalar json server.
- Generar un json que servirá de BD.
- Cliente rest.
La implementación de servicios REST es más simple que SOAP requiere menos 'plumbing code' que los servicios
servicios SOAP. En SOAP Si no se cuenta con las REST, (ej., transaccionalidad, seguridad, coordinación,
herramientas correctas, la interpretación puede tornarse etc.). Con REST aspectos como la seguridad pueden llegar a
demasiado compleja y difícil. ser una tarea difícil de implementarla correctamente.
No hay un claro ganador, pues tanto SOAP como REST siguen siendo muy útiles
en condiciones diferentes, prácticamente depende del tipo de servicios que se
requieran.