package todowizard.resource; import java.util.List; import javax.validation.Valid; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import todowizard.entity.Todo; import todowizard.service.TodoService; import com.google.inject.Inject; /** * ToDo リソース。実際の処理はサービスクラスに委譲し、複雑なロジックはここでは実装しない。 * * @author t_endo */ @Path("/api/todos") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public class TodoResource { @Inject private TodoService todoService; @GET public List<Todo> getTodos() { return todoService.findAll(); } @GET @Path("{id}") public Todo getTodo(@PathParam("id") int id) { return todoService.findById(id); } @POST public Todo postTodo(@Valid Todo todo) { return todoService.create(todo); } @PUT @Path("/{id}") public Todo updateTodo(@PathParam("id") int id, @Valid Todo todo) { return todoService.update(todo); } @DELETE @Path("/{id}") public void deleteTodo(@PathParam("id") int id) { todoService.delete(id); } }