2013-04-22 164 views
0

所以我在后端有一个方法,我想从客户端调用(Android和web,虽然不是很重要)。该方法接受两个“复杂”参数 - 两个对象。调用REST服务的方法的正确方法(带有多个参数)

可以简单地声明一个URL(例如domain/method),客户端向其发送对象,并在后端有一个控制器映射到该URL并调用该方法?如果是的话,我应该如何发送POST请求和两个对象?

回答

1

当你谈论域/方法时,它听起来更像是RPC服务而不是REST服务。 RPC(远程过程调用)用于基于方法的服务,而REST用于基于资源的服务。

在任何情况下,当你创建一个REST API,你应该使用的网址如下所示:

example.com/resource/ example.com/resource

当你需要创建一个新的资源,请使用example.com/resource上的POST方法。您可以将您的对象包含在POST请求的有效内容中。服务器应验证并处理那些最终生成新资源的对象。根据您的REST架构,服务器可以在您的帖子的回复中返回资源或资源的URI。

验证和处理对象并生成资源的方式取决于您的应用程序。通常,您使用URI和HTTP方法(GET,POST,PUT或DELETE是标准的)来路由到处理请求的代码。

+0

哦:/所以在做REST时它应该是全部*资源? :/如果客户端上的一个按钮只需要增加一些东西(创建没有新的资源)会怎么样? – Bloke 2013-04-22 19:55:00

+0

假设需要增加的项目是现有资源的属性,可以使用PUT或PATCH更新它。 – 2013-04-22 20:38:31

+0

然后我会做的是发送PUT/PATCH请求与一个空的正文(?)到'example.com/resourceToUpdate',并在服务器上有一些代码,这是触发这个URL和PUT/PATCH请求增加属性? – Bloke 2013-04-23 09:42:34