首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改API的JSON数据

问修改API的JSON数据
EN

Stack Overflow用户
提问于 2016-09-24 19:08:26
回答 3查看 46关注 0票数 0

我已经构建了一个API,它本质上有三个调用。首先,进行调用以检索令牌。接下来,我有一种自动完成功能,它返回数据和它应该查找的对应表。此数据的返回方式如下

代码语言:javascript
复制
[
  {
    "result": "Apples",
    "table": "fruitTable"
  },
  {
    "result": "Bread",
    "table": "breadTable"
  },
  {
    "result": "Pie",
    "table": "pieTable"
  }
]

我的最终路线如下所示

代码语言:javascript
复制
Route::get('returnSelectedResult/{table}/{selected}', array('uses'=>'APIController@returnSelectedResult'));

由此它使用上面的查找结果来获得正确的表和所选的选项。然后,我执行以下操作

代码语言:javascript
复制
public function returnSelectedResult($table, $selected)
{
    $tableData = DB::table($table)->where('search_item', $selected)->get();
    return response($tableData, 200);
}

所以这一切都运行得很好。但是,表中的数据是平面的。因此,返回给API用户的最后一件事是这样的

代码语言:javascript
复制
[
  {
    "search_item": "Bread",
    "num_types": 34,
    "most_ordered": 'Baggette',
    "most_popular_day": 'Saturday',
    "average_profit": 3.5,
  }
]

我展示的是一个非常精简的版本,返回的数据要多得多,但它们都处于相同的级别。我需要返回给用户的是更像这样的东西

代码语言:javascript
复制
[
  {
    "searched" : {
        "search_item": "Bread"
    },
    "types" : {
        "num_types": 34
    },
    "analytics" : {
        "most_ordered": 'Baggette',
        "most_popular_day": 'Saturday',
        "average_profit": 3.5
    }
  }
]

实现这样的目标最好的方法是什么?

谢谢

EN

回答 3

Stack Overflow用户

发布于 2016-09-24 19:12:51

您可以使用查询结果显式构建数组。

票数 1
EN

Stack Overflow用户

发布于 2016-09-24 19:16:23

如果你真的想构建api,你应该使用转换器来更好地表示数据。

你可以使用phple团/分形,或者如果你想要完整的api包,我建议你尝试dingo/api。

票数 1
EN

Stack Overflow用户

发布于 2016-09-24 20:21:04

做这样的事情,现在我已经做了分析

代码语言:javascript
复制
class MainClass
{
  public $searched;
  public $types;
  public $analytics;
}

class AnalyticsClass
{
  public $most_ordered;
  public $most_popular_day;
  public $average_profit;
}

$obj_data = new AnalyticsClass();
$obj_data->most_ordered = 'Baggette';  
$obj_data->most_popular_day = 'Saturday';
$obj_data->average_profit = 3.5;

$obj_main = new MainClass();
$obj_main->analytics = $obj_data; 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39675650

复制
相关文章

相似问题

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