在 Laravel 或 iOS 应用程序中转换 JSON API 数据
Posted
技术标签:
【中文标题】在 Laravel 或 iOS 应用程序中转换 JSON API 数据【英文标题】:Transform JSON API data in Laravel or in iOS app 【发布时间】:2015-02-11 14:54:05 【问题描述】:我正在使用 Laravel 分形来转换我的 API 数据。
在我的数据库中,我有一个类似“2015-02-15 14:34”的时间戳,但我需要将该转换计算为“剩余时间”,而不是输出时间戳。
所以“2015-03-15 12:43”变成了例如:“14 days and 4 hours”
我应该使用带有 Carbon 的分形转换器计算 Laravel 中的时间戳,还是应该将时间戳作为 json 发送到我的 ios 应用,然后让 iOS 应用计算并输出剩余时间?
例如:
public function transform(Model $model)
return [
'time_remaining' => Carbon::blabla->blabla($model->date_published);
];
或者只是将 json date_published : "2015-02-14 14:30"
发送到 iOS 应用程序,让应用程序计算该值到在应用程序视图中显示之前的剩余时间?
另外,json 将返回大约 30 项的结果,带有分页
提前致谢
【问题讨论】:
【参考方案1】:我肯定会发送日期和时间,而不是人类可读的字符串。两个原因:
“...以前”随着时间的推移而变化。如果您让服务器处理此问题,则如果要更新这些“日期”,则必须发出新请求。如果您在客户端执行此操作,则不必这样做。你可以简单地重新计算它,因为你有实际的时间戳
这种人类可读的格式基本上是一个演示问题。在我看来,API 应该提供原始数据,而客户端应该担心如何格式化和显示这些数据。
【讨论】:
我同意。另外,我建议返回 GMT 时间,而不是服务器的本地时区。 谢谢,那我就直接发送存储的 json,让 iOS 应用根据 json 值计算剩余时间。而且由于我正在从事的项目有一个不允许嵌套对象的 Elasticsearch 包,因此我已经在使用 iOS 应用程序进行“内部连接”。 json 返回 id 的那实际上是外键。因此应用程序将收到值,例如“stateId:2”,然后检查值“2”并返回具有该值的状态名称。所以“2”变成了例如“阿拉斯加”。我知道这是一个糟糕的解决方案。但由于后端/搜索引擎无法处理这些连接,这是唯一的方法以上是关于在 Laravel 或 iOS 应用程序中转换 JSON API 数据的主要内容,如果未能解决你的问题,请参考以下文章
IOS 应用服务使用哪些 laravel 路由(Web 路由或 API 路由)
Laravel 查询:如何将布尔值 1 和 0 转换为“通过”或“失败”
如何使用干预图像laravel将webp图像转换为jpeg或png