REST API ArrayList @DELETE

时间:2017-11-09 08:08:05

标签: java arraylist

public class BookList {

    public static List<Book> Listing= new ArrayList<Book>();

    Book book = new Book();

    public List<Book> getBooks(){
        Book book1=new Book("1", "Name 1","Author 1", "Text");
        Book book2=new Book("2", "Name 2","Author 2", "Text");
        Book book3=new Book("3",  "Name 3","Author 3", "Text");
        Book book4=new Book("4", "Name 4","Author 4", "Text");


        Listing.add(book1);
        Listing.add(book2);
        Listing.add(book3);
        Listing.add(book4);

        return Listing;

    }

我有一个@DELETE函数所在的主Java类。

@DELETE
    @Path("/{bookID}")
    @Produces(MediaType.APPLICATION_XML)
    public Response deleteBook(@PathParam("bookiD") int id){
        String output = (bookList.getBook(id));
        return Response.status(200).entity("Hehehe").build(); 
    }

我想得到的是当我在Postman中运行@DELETE时,我会回到列表中留下的书籍清单,并列出预订链接中ID的那本书:例如localhost :49000/1 - 从列表中删除ID为1的书籍并返回其余书籍

2 个答案:

答案 0 :(得分:0)

这是一个简单的ArrayList删除问题

与您的getBook方法一样,添加deleteBook方法,然后实施从列表中删除图书的方法。 `list.remove(getBook(ID-1)); //

然后在您的public Response deleteBookXML(@PathParam("bookID") int id)方法中,首先deleteBook,而不是使用笑佛entity("Hehehe"))作为实体返回响应,而不是使用bookList作为实体

答案 1 :(得分:0)

BookList.list.removeif(x -> x.id.equals(id + "");
return Response.status(200).entity(BookList.list).build(); 

它显示您的Book对象使用字符串作为ID?

上述代码将使用您的静态书籍列表,并删除ID等于网址ID的图书元素。

然后,代码将返回http状态200,并将书籍列表作为实体。