我開發了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