Por mucho tiempo, hemos considerado una aplicación de escritorio como Cliente/Servidor; donde el "Servidor" es una base de datos.
Sin embargo, con el creciente uso de servicios; surge la necesidad de conectarnos e interactuar constantemente.
Dependiendo de la necesidad y el caso de uso, podemos emplear:
- gRPC
- GraphQL
- WebSocket
- API Rest
- SOAP
El estándar actual es utilizar Rest/JSON.
Desde Java 11 nos provee un nuevo (y mejorado) HTTP Client.
Para agregar nuevos registros, envíamos los datos mediante una petición POST.
BookDto newBook = new BookDto("New book from Swing", 250); | |
HttpRequest request = HttpRequest.newBuilder() | |
.uri(new URI("http://localhost:8080/books")) | |
.headers("Content-Type", "application/json") | |
.POST(HttpRequest.BodyPublishers.ofString(mapper.writeValueAsString(newBook)) ) | |
.build(); |
201
{"id":1,"title":"New book from Swing","pages":250}
201
{"id":2,"title":"New book from Swing","pages":250}
201
{"id":3,"title":"New book from Swing","pages":250}
Recuperamos el listado, al invocar el método GET y lo mostramos en la grilla.
HttpRequest request = HttpRequest.newBuilder() | |
.uri(new URI("http://localhost:8080/books")) | |
.GET() | |
.build(); | |
... | |
dataModel.deleteRows(); | |
List<BookDto> books = mapper.readValue(response.body(), new TypeReference<>(){}); | |
books.forEach( | |
b -> { | |
Object[] row = { | |
String.valueOf(b.getId()), | |
b.getTitle(), | |
b.getPages() | |
}; | |
dataModel.insertRow(row); | |
} | |
); |
Top comments (0)