到目前为止,我所有的缩略图都是150x150。我想支持不同的缩略图大小,以便处理不同的Android / iPhone型号。
我一直在考虑这种支持多种尺寸的方式。始终使用方形缩略图使事情变得更简单。
获取75x75缩略图
GET http://example.com/gallery?resolution=75
...
{
"id": 1001,
"thumbnail": "http://lh5.ggpht.com/EEIl3_hedJSAT4RscoceShtWy3DE4WGKXXNp4rusI-kpzWfDIbzrWx1KVywf9YqGI-elD_k4xg8bUemeRTtLgtAPOlVc0kpw=s75"
}
获取150x150缩略图
GET http://example.com/gallery?resolution=150
...
{
"id": 1001,
"thumbnail": "http://lh5.ggpht.com/EEIl3_hedJSAT4RscoceShtWy3DE4WGKXXNp4rusI-kpzWfDIbzrWx1KVywf9YqGI-elD_k4xg8bUemeRTtLgtAPOlVc0kpw=s150"
}
我见过很多不支持自定义尺寸的api,例如flickr api支持小,中,大和原始大小。
这种api可以以某种方式得到改善吗?
答案 0 :(得分:1)
嗯,你可以拥有固定值,如Flickr API(小型,中型,大型和原装)。你可以做的是预渲染和存储它们,这意味着你可以直接从磁盘或缓存中抓取它们而不是动态渲染它们。您的请求网址可能如下所示:
GET http://example.com/gallery?resolution=small
但是,如果您想提供最大的灵活性,则应继续使用现在的API方式,并允许API用户指定方块大小。你应该有一个固定的最大内置来阻止滥用。一个例子是Gravatar API,它具有固定的最大值512px,并且可以使用URL中的s=
参数指定大小。
最后,这取决于您的成本/效益比。维护灵活大小的API而不是预先渲染的固定大小API会更加困难,并且即时渲染需要在服务器/ RAM /带宽等方面进行更多投资。