Questions tagged «restful-architecture»

4
REST API-文件(即图像)处理-最佳做法
我们正在使用REST API开发服务器,该API接受和响应JSON。问题是,如果您需要将图像从客户端上传到服务器。 注意:我也正在谈论一个用例,其中实体(用户)可以具有多个文件(carPhoto,licensePhoto)并且还具有其他属性(名称,电子邮件...),但是当您创建新用户时,您不会这些图片不会发送,而是在注册过程后添加的。 我知道的解决方案,但每个解决方案都有一些缺陷 1.使用multipart / form-data代替JSON 很好:POST和PUT请求尽可能地是RESTful的,它们可以包含文本输入和文件。 缺点:它不再是JSON,与multipart / form-data相比,它更易于测试,调试等。 2.允许更新单独的文件 创建新用户的POST请求不允许添加图片(在我们的用例中,我一开始就这么说过),上传图片是通过PUT请求作为multipart / form-data完成的,例如,/ users / 4 / carPhoto 很好:所有内容(文件上传本身除外)都保留在JSON中,易于测试和调试(您可以记录完整的JSON请求而不必担心它们的长度) 缺点:这不直观,您不能一次过POST或PUT实体的所有变量,并且也可以将此地址/users/4/carPhoto更多地视为一个集合(REST API的标准用例如下/users/4/shipments)。通常,您不能(也不想)获取/放置实体的每个变量,例如users / 4 / name。您可以使用GET获取名称,并使用users / 4在PUT上更改名称。如果id后面有东西,通常是另一个集合,例如users / 4 / reviews 3.使用Base64 将其作为JSON发送,但使用Base64编码文件。 良好:与第一个解决方案相同,它是尽可能多的RESTful服务。 缺点:再次,测试和调试要差很多(主体可能具有兆字节的数据),客户端和服务器的大小和处理时间都增加了 我真的很想使用解决方案编号。2,但是它有其缺点...任何人都可以给我更好的洞察力,即“什么是最好的”解决方案? 我的目标是使RESTful服务包含尽可能多的标准,而我想使其尽可能简单。

8
以RESTful方式在资源上调用服务器端方法
请记住,我对REST有基本的了解。假设我有以下网址: http://api.animals.com/v1/dogs/1/ 现在,我想让服务器将狗叫起来。只有服务器知道如何执行此操作。假设我想让它在CRON作业上运行,该作业会使狗在以后的永恒中每10分钟吠叫一次。这个电话看起来像什么?我有点想这样做: 网址请求: ACTION http://api.animals.com/v1/dogs/1/ 在请求正文中: {"action":"bark"} 在为构造自己的HTTP方法而生我的气之前,请帮助我,让我更好地了解如何以RESTful方式调用服务器端方法。:) 编辑澄清 有关“树皮”方法功能的更多说明。以下是一些可能导致结构不同的API调用的选项: 树皮只会向dog.email发送电子邮件,却什么也没记录。 bark将电子邮件发送到dog.email,并将dog.barkCount递增1。 树皮会在树皮发生时使用bark.timestamp记录创建一个新的“树皮”记录。它还会将dog.barkCount递增1。 吠声运行系统命令以从Github中获取最新版本的狗码。然后,它将一条文本消息发送到dog.owner,告诉他们新的狗代码正在生产中。

7
何时在RESTful API中使用路径参数与查询参数?
我想使我的RESTful API非常可预测。确定何时使用URI而不是使用查询参数对数据进行分段的最佳实践是什么? 对我来说,支持分页,排序和分组的系统参数应该位于“?”之后 但是,诸如“状态”和“区域”之类的字段或对您的收藏进行细分的其他属性呢?如果这些也要用作查询参数,那么知道何时使用路径参数的经验法则是什么?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.