在Laravel Apis中发布json数据还是仅发布键值对更好?

时间:2018-06-29 12:21:57

标签: laravel laravel-5 eloquent laravel-5.2 laravel-5.1

我已经在Laravel开发了Api,现在我的团队成员之一说,我将在api调用期间以Json格式发布数据。现在我该怎么办?

以Json格式发布数据还是仅使用键值对更好? 请帮助

3 个答案:

答案 0 :(得分:1)

我建议使用laravel资源

来自文档:

    class User extends JsonResource
    {
        /**
        * Transform the resource into an array.
        *
        * @param  \Illuminate\Http\Request
        * @return array
        */
        public function toArray($request)
        {
            return [
               'id' => $this->id,
               'name' => $this->name,
               'email' => $this->email,
               'created_at' => $this->created_at,
               'updated_at' => $this->updated_at,
           ];
        }
    }

如果要返回一个对象

Route::get('/user', function () {
    return new UserResource(User::find(1));
});

如果您想返回收藏集

Route::get('/user', function () {
    return UserResource::collection(User::all());
});

这样,您可以控制路线返回的内容,它将默认为json

https://laravel.com/docs/5.6/eloquent-resources

答案 1 :(得分:0)

Json非常易于操作,并且php和JavaScript均可访问。将您网站的数据解析为json会打开一扇广阔的大门,否则将很难实现。如果您使用的是laravel,则可以使用json_encode和json_decode()函数来回解析数据或使用JSON helper类

答案 2 :(得分:0)

“更好”是非常主观的。没有什么适合所有用例的(尤其是在处理遗留代码时),但是通常使用JSON(在大多数REST API中使用)或XML(在SOAP中使用)传输API中的数据。不过,请注意以下几点: 1)REST是不可知的,因为它并不关心数据使用什么格式,因此有些应用程序可以将数据以csv,JSON,XML或其他任何可以想象的方式传输。

2)我相信从真正的无头API中看到的最常见的东西是JSON。

3)正如前面提到的那样,JSON与其他经常使用API​​的语言可以很好地兼容。在大多数情况下,如果我使用的API是Javascript,Java或Python,则这三个都是“ JSON友好的”。由于这个原因,这将是我的首选格式。

4)考虑一下现在和将来将使用您的API的方式,并使其构建得最好,并尽可能“证明未来”。

5)其他人将不得不稍后阅读您的代码。使用良好定义的,记录良好的格式比解密某些必须从字符串中解析数据或以自定义方式处理数组的方法要容易得多。对像JSON这样已经成为REST标准的东西进行标记将有助于那。

6)Laravel response()-> json()已可从您的控制器中获得。加上JS的本机JSON方法似乎就应该将它们放在一起。

那只是我的观点。