首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JSON-API响应中表示多个图像大小?

如何在JSON-API响应中表示多个图像大小?
EN

Stack Overflow用户
提问于 2018-07-30 21:15:28
回答 1查看 826关注 0票数 1

我的应用程序有用户,每个用户都有一张照片,可以多种尺寸下载。您将如何在JSON-API中对此进行建模?

内联对象

代码语言:javascript
复制
data: {
  photo: {
   small: "small.png",
   large: "large.png"
  }
}

我在这里看到的问题是,当有6个图像大小和50个用户的列表时,我通过网络发送了300个照片URL,其中大多数都不需要。

内联URL +参数

代码语言:javascript
复制
data: {
  photo: "default.png"
}

这会产生较少的数据,但不清楚如何获得小/大版本。这可以通过添加一个请求param:?photo_size=small来完成,它将返回一个不同的照片url。这里的问题:您必须了解photo_size参数。从回复中看不出它是否存在。

链接

代码语言:javascript
复制
{
  links: {
    small_photo: "url to photo or url to user endpoint but with photo_size param (see above)"
  }
}

这感觉像是json-api-like,但同样会产生大量的json数据。我也不确定要链接到什么(照片或用户端点)。

URL模板

我可以返回一个模板和可用的大小,而不是为每个照片大小返回一个URL,但是afaik这不是/allowed(?)在JSON-API中(还没有?)

EN

回答 1

Stack Overflow用户

发布于 2018-07-31 01:43:50

如果您将图像视为用户的属性,那么我不认为JSON-API规定了如何处理到外部文件的链接。您的任何技术都将符合规范。

您的第一个数据结构将是最直接的,并且给定图像URL将主要由重复的部分组成,它们将非常好地压缩,因此每个图像的额外下载大小变化可能可以忽略不计。

以下是非常标准的:

代码语言:javascript
复制
data: {
  type: "user",
  id: 1,
  attributes: {
    photos: {
      small: {
        url: "https://...",
        width: 50,
        height: 50
      },
      large: {
        url: "https://..."
...

使用模板似乎也是合规的,因为它实际上是由客户端决定如何处理数据:

代码语言:javascript
复制
data: {
  type: "user",
  id: 1,
  attributes: {
    photos: {
      base: "https://...<size>.jpg",
      sizes: ["small", "medium", "large"]
...

链接看起来并不合适,尽管规范对它们的定义非常松散,因为期望它们链接到其他API资源。

由于你所说的原因,内联也不是很好,你不想在客户端预先假设这些知识。

您还可以使用fields参数让客户端只请求特定的照片大小。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51594850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档