Demostración de uso de xtrest sobre cómo declarar y probar una API REST con operaciones CRUD y búsqueda.
package | descripción |
---|---|
org.uqbar.biblioteca.model |
Modelo de dominio (Biblioteca y Libro) |
org.uqbar.biblioteca.rest |
Definición Xtrest de la API REST (detalles más abajo) |
org.uqbar.biblioteca.app |
El main que levanta un servidor HTTP y inicializa un modelo con libros de prueba |
operation | request | response status | response description |
---|---|---|---|
obtener todos los libros | GET /libros |
200 OK | Lista de todos los libros |
obtener un libro por id | GET /libros/7 |
200 OK | Un libro con el id indicado (7 ) |
GET /libros/88888 |
404 Not Found | No hay libro con el id indicado (88888 ) |
|
GET /libros/Ficc |
400 Bad Request | Id mal formado (Ficc no es un entero) |
|
buscar libros por título | GET /libros?string=Ficc |
200 OK | Lista de libros que contengan ficc (ignorando mayúsculas/minúsculas) |
crear/modificar libro | POST /libros (BODY bien) |
200 OK | El libro recibido en el BODY (formato JSON) ahora pertenece a la biblioteca |
POST /libros (BODY mal) |
400 Bad Request | No pudo leerse al BODY como instancia de org.uqbar.biblioteca.model.Libro |
|
borrar libro | DELETE /libros/7 |
200 OK | Borra el libro con id 7 |
DELETE /libros/88888 |
400 Bad Request | No hay libro con id 88888 |
|
DELETE /libros/Ficc |
400 Bad Request | Id mal formado (Ficc no es un entero) |
Atención: La implementación usa formato JSON en el BODY, tanto en request como en response.
- Importar este proyecto en Eclipse como Maven project.
- Ejecutar
org.uqbar.biblioteca.app.BibliotecaApp
, que levanta servidor en el puerto 9000.
- Generar jar con dependencias:
mvn clean compile assembly:single
- Ejecutar el jar generador:
java -jar target/biblioteca-xtrest-0.0.1-SNAPSHOT-jar-with-dependencies.jar
Esta opción requiere menos recursos de sistema porque no es necesario ejecutar Eclipse.
Probar los ejemplos de API REST
- en el navegador: http://localhost:9000/libros;
- en Postman, importar este archivo que provee varios ejemplos de request listos para usar.
Si querés ver una demo de cómo probarlo, podés chequear este link.