我开发了REST服务,但现在我意识到我在做错事。RESTful服务 - 如何设计具有多个参数的URL
例如,我有一项服务可以检索有关特定设备的信息。每个设备都有一个地址:sector.room.group.id。 我为这个GET方法所做的URI是:(...)/services_devices/{sector}/{room}/{group}/{id}
但是现在我意识到我不应该使用'/'
来分隔设备地址,对吧? 我应该如何将地址传递给此方法?使用3210?
我GET方法是:
@GET
@Path("{sector}/{room}/{group}/{id}")
@Produces("application/json")
public String getDeviceName(@PathParam("sector") int sector, @PathParam("room") int room, @PathParam("group") int group, @PathParam("id") int id) throws Exception
{
String name = null;
try {
name = new DevicesManager().getDeviceName(sector, room, group, id);
} catch (Exception e) {
e.printStackTrace();
}
return name;
}
有这种变化的一个简单的方法,有一个正确的URI?我在许多方法中都有这个“错误”。
如果您只是将您的URI更改为/ services_devices/{address}并开始以您指定的格式(即/services_devices/sector.room.group.id)接受地址,该怎么办? – JSS 2013-04-08 17:24:59
嗯,你是对的!我将需要解析这些字段,但我认为没有问题。 – user2144555 2013-04-08 17:31:10
id在您的应用程序中是唯一的,还是只在指定的组中唯一?换句话说,如果你只提供/ services_devices/id,你可以查找扇区,房间和组? – phatfingers 2013-04-08 18:08:30