0

首先有一个愉快的周末给那些谁!为了另一个好运:)

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

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

所以让我们举个例子,也许问题会随之而来。

假设您有一个名为 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)

谢谢大家提前回答

此致

杰弗里·穆塞利

4

1 回答 1

0

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

为了显示单个汽车的信息,不需要以“显示”结尾的端点。对 /car/{car id}的GET请求就足够了。该文档可以包含汽车的当前状态(打开、关闭、运行、爆炸等......)GET是您的操作,/car/{car id} 是您的东西,以及它返回的文档(以及例外通过POSTPUT是您的 API 的协议)

于 2016-09-02T21:44:15.213 回答