我正在实现(日食)使用我的Java API进行放置和获取的简单方法。
代码如下:
@Path("/jason")
public class JavajsonRestApi {
List<Book> bookList = new ArrayList<>();
@GET
@Path("/json")
@Produces(MediaType.APPLICATION_JSON)
@Consumes({MediaType.APPLICATION_JSON})
public List<Book> getJson() {
return bookList;
}
@POST
@Path("/json")
@Produces(MediaType.APPLICATION_JSON)
public List<Book> postJson(Book book) {
bookList.add(book);
return bookList;
}
}
bookList
是在方法之外声明的全局变量。使用post post我将对象推到指定的端点。使用get可以从同一端点获取对象列表。但是尽管添加到列表,但GET显示空列表,而且
bookList
在这里是全局变量。 GET应该显示已发布的书籍清单。为什么会有奇怪的行为?
任何帮助表示赞赏。
最佳答案
只是一些可以帮助您的提示;
您的postJson()应该不会产生,也不应该返回列表
将@Consums添加到您的postJson()
您的getJson()不应该使用
我只使用您发布的bookList变量而不是全局变量,但可以正确地对其进行初始化(私有)
那应该可以解决您的问题,但不要忘记调试!检查您的方法返回的值