【发布时间】:2018-03-11 20:43:30
【问题描述】:
我确实需要关于我正在从事的 RESTful API 项目的帮助。我进行了广泛的搜索,现在正处于十字路口。这对我来说很新,我不太了解所有内容,所以如果这是一个基本问题,我深表歉意。
我需要做什么:
我需要创建一个“getVehicle”方法来执行以下操作:
- getVehicle() 将获取给定的 id,并找到具有 匹配标识。
- 它将逐行迭代本地文件,检查是否 id 匹配,如果匹配则返回车辆对象。
这是标题:
@RequestMapping(value = "/getVehicle/{id}", method = RequestMethod.GET)
public Vehicle getVehicle(@PathVariable("id") int id) throws IOException {
我确实知道如何使用纯 Java 来做到这一点,但是这种 RESTful 的东西让我陷入了循环。
我的理解:
据我所知,当我发出 GET 请求(为此我使用 Advance REST 客户端)时,我为 {id} 输入的 ID 将与我的文本文件(称为 inventory.txt )。
我使用 POST 方法在我的文本文件中填充了 6 个条目,所有这些条目都是关于各种“车辆”的信息。因此,如果我向 url http://localhost808/getVehicle/2 发出 GET 请求,我应该得到关于 id 为 2 的“车辆”的信息。
我的问题:
但是,就我目前拥有的而言,我的文件没有被迭代,所以我得到的唯一“车辆”是 id 0。
我目前所拥有的:
@RequestMapping(value = "/getVehicle/{id}", method = RequestMethod.GET)
public Vehicle getVehicle(@PathVariable("id") int id) throws IOException
{
//ObjectMapper provides functionality for reading and writing JSON
ObjectMapper mapper = new ObjectMapper();
String inventory = FileUtils.readFileToString(new
File("./inventory.txt"),
CharEncoding.UTF_8);
//Deserialize JSON to vehicle object
Vehicle vehicle = mapper.readValue(inventory, Vehicle.class);
if (vehicle.getId() == id) {
return vehicle;
}
return null;
}
我的要求:
我不知道如何遍历我的文本文件以查找正在请求的 id。
弄清楚这一点将彻底消除我的困惑并帮助我完成我的项目
任何提示、技巧、资源以及任何能让我走上解决这个问题的道路的东西都将不胜感激。再说一次,这对我很好,我正在努力保持理智。
如果我需要澄清任何事情,请告诉我!
我要感谢所有花时间在这里帮助我的人:D!
【问题讨论】:
-
我没有看到任何类型的迭代循环。我假设
vehicle返回一个对象,您需要使用for (v: vehicle) { if statement}之类的东西对其进行迭代。 -
我试过了,我得到一个错误,上面写着:“foreach 不适用于类型'com.example.Vehicle'”。我假设我不能将 foreach 与我的对象类型一起使用??
-
你给它
v将是什么类型的变量?抱歉,我忘了添加这个for (Vehicle v: vehicle) { System.out.println(v); }。看看这是否有效。 -
是的,我做到了。 “车辆”带有下划线,我之前提到的错误。我的包路径与此有关吗??
标签: java rest restful-url