在 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 转换现有用户系统多类型

Laravel 查询:如何将布尔值 1 和 0 转换为“通过”或“失败”

如何使用干预图像laravel将webp图像转换为jpeg或png

为啥我的 iOS 应用程序中的变量或强制转换为空? [复制]

PHP - Laravel - 将 Docx 转换为 PDF