Tag: restful认证

REST API – 文件(即图像)处理 – 最佳实践

我们正在使用REST API开发服务器,它接受和响应JSON。 问题是,如果你需要从客户端上传图片到服务器。 另外请注意,我正在谈论的用例,其中实体(用户)可以有文件(carPhoto,licensePhoto),也有其他属性(名称,电子邮件…),但是当你创build新的用户,你不会发送这些图像,在注册过程后添加。 我知道的解决scheme,但他们每个人都有一些缺陷 1.使用multipart / form-data而不是JSON 好 :POST和PUT请求尽可能RESTful,它们可以包含文本和文件一起input。 缺点 :不再是JSON,与multipart / form-data相比,testing,debugging等更容易 2.允许更新单独的文件 POST请求创build新用户不允许添加图像(这在我们的使用情况下是如何说,我开始说),上传图片是由PUT请求作为multipart / form-data例如/ users / 4 / carPhoto 好 :除了file upload以外,所有东西都保存在JSON中,很容易testing和debugging(你可以logging完整的JSON请求而不用担心它们的长度) 缺点 :这不是直观的,你不能一次POST或PUT实体的所有variables,也可以认为这个地址/users/4/carPhoto更多的集合(REST API的标准用例看起来像这样/users/4/shipments )。 通常你不能(并不想)GET / PUT实体的每个variables,例如用户/ 4 /名称。 您可以使用GET获取名称,并在用户/ 4处使用PUT更改它。 如果id后面有东西,通常是另一个集合,比如users / 4 / reviews 3.使用Base64 将它作为JSON发送,但使用Base64编码文件。 好 :与第一种解决scheme相同,它是尽可能的RESTful服务。 缺点 :testing和debugging再次糟糕得多(主体可能有兆字节的数据),在客户端和服务器上都有增加的大小和处理时间 我真的很想用解决scheme没有。 2,但它有其缺点…任何人都可以给我一个更好的“什么是最好的”解决scheme的见解? 我的目标是尽可能多地包含尽可能多的RESTful服务,而我希望尽可能简单。

会话是否真的违反RESTfulness?

在RESTful API中使用会话是否违反RESTfulness? 我已经看到了许多意见,但我不相信会议是RESTless 。 从我的观点: RESTfulness不会禁止认证(否则在RESTful服务中几乎没有用处) 身份验证是通过在请求中发送身份验证令牌来完成的,通常是头部 这个认证令牌需要以某种方式获得,并且可能被撤销,在这种情况下,它需要被更新 身份验证令牌需要服务器验证(否则不会进行身份验证) 那么会话如何违反这个规定呢? 客户端,会话使用cookie来实现 cookies只是一个额外的HTTP头 会话cookie可以在任何时候被获取和撤销 会话cookie可以有一个无限的生活时间,如果需要的话 会话ID(身份验证令牌)在服务器端进行验证 因此,对于客户端,会话cookie与任何其他基于HTTP头的认证机制完全相同,除了它使用Cookie头而不是Authorization或其他专有头。 如果没有会话连接到cookie值服务器端,为什么会有所作为? 只要服务器表现为 RESTful,服务器端实现就不需要关心客户端。 因此,Cookie本身不应该使API 变得无法使用,而会话只是客户端的Cookie。 我的假设是错的吗? 什么使得会话cookie 无效 ?