PathParam图层检查REST

时间:2016-09-02 16:36:52

标签: rest query-parameters path-parameter

首先,对于那些人来说,周末愉快!为了另一个好运:))

我正在使用rest架构创建一个应用程序。

我只是有一个简单的问题,但我不知道如何解释它。

所以,让我们举一个例子,也许问题会出现。

想象一下,你有一个名为Car的路径元素。如果我对它进行GET,则返回carInformation

所以我要定义:

@GET
@Path("/car/{carid}/display")
public Response getCar(@PathParam("carid")String carID)

如果我定义要对此车执行的操作,例如打开,关闭,启动等:

@POST
@Path("/car/{carid}/startup")
public Response startup(@PathParam("carid")String carID)

@POST
@Path("/car/{carid}/open")
public Response open(@PathParam("carid")String carID)

@POST
@Path("/car/{carid}/close")
public Response close(@PathParam("carid")String carID)

是否在/ car / {carid}进行了常见的检查,例如"是我的车吗?" "它在车库里吗?"或者我是否必须使用抽象来实现它,例如在

之后调用的进程之间

事实上,我并不了解路径参数的真正目标。为什么不做

@GET
@Path("/car/displayCar")
public Response getCar(@QueryParam("carid")String carID)

@POST
@Path("/car/startup")
public Response startup(String carID)

@POST
@Path("/car/{carid}/open")
public Response open(String carID)

@POST
@Path("/car/{carid}/close")
public Response close(String carID)

感谢所有人提前回答

祝你好运

Geoffrey MUSELLI

1 个答案:

答案 0 :(得分:0)

有很多方法可以解决这个问题,包括REST和RPC - 我不是要说哪个更好(你需要评估哪个更容易/更好/等等对你的API的消费者来说[ IMO])。为此,我将使用REST方法来实现它。

为了显示单个车辆的信息,不需要以'display'结尾的端点。对/ car / {car id}的 GET 请求就足够了。该文档可以包含汽车当前状态(打开,关闭,运行,爆炸等等)。 GET 是您的行动,/ car / {car id}是您的事情,并且它返回的文档(并通过 POST PUT 除外是API的协议)