Añadimos la siguiente dependencia:
<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20220924</version> </dependency>
Mapeamos el servlet, creamos un actorDAO para acceder a los datos e implementamos el get:
@WebServlet("/Api/*")
public class Api extends HttpServlet {
private static final long serialVersionUID = 1L;
private ActorDAO actorDAO;
/**
* @see HttpServlet#HttpServlet()
*/
public Api() {
super();
actorDAO = new ActorDAO();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
String id = request.getPathInfo();
System.out.println(id);
if (id == null) {
List<Actor> actores = actorDAO.getActors();
JSONArray actoresJSON = new JSONArray(actores);
response.getWriter().append(actoresJSON.toString());
} else {
int idActor = Integer.parseInt(id.substring(1));
Actor actor = actorDAO.getActor(idActor);
JSONObject actorJSON = new JSONObject(actor);
response.getWriter().append(actorJSON.toString());
}
} catch (Exception ex) {
JSONObject mensaje = new JSONObject();
mensaje.put("Mensaje", "Error en la petición");
mensaje.put("Error", ex);
response.getWriter().append(mensaje.toString());
}
}
EL POST:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Me mandarán los valores del actor en formato JSON
// Tendré que insertarlo en la BD
JSONObject mensaje = new JSONObject();
try {
String data = request.getReader().lines().collect(Collectors.joining());
JSONObject actorJSON = new JSONObject(data);
Actor actor = new Actor(0, actorJSON.getString("first_name"), actorJSON.getString("last_name"), null);
if (actorDAO.addActor(actor)) {
mensaje.put("Mensaje", "Actor insertado con éxito");
} else {
mensaje.put("Mensaje", "Error en la inserción");
}
response.getWriter().append(mensaje.toString());
} catch (Exception ex) {
mensaje.put("Mensaje", "Error en la petición");
mensaje.put("Error", ex);
response.getWriter().append(mensaje.toString());
}
}