Почему JSON-структура ответа по умолчанию на нумерацию страниц и красноречивый ресурс нумерации страниц отличаются? - PullRequest
0 голосов
/ 16 февраля 2019

Я разрабатываю API, и для индексных маршрутов я возвращаю нумерацию страниц, но теперь я должен использовать красноречивые ресурсы, но JSON-структура этих двух страниц отличается, и интерфейсный код больше не работает.

мои коды:

// AdminUserController.php
public function index()
{
    return User::paginate();
}

// ClientUserController.php
public function index()
{
     return new UserCollection(User::paginate());
}

первая структура JSON, такая как:

{
  "total": 50,
  "per_page": 15,
  "current_page": 1,
  "last_page": 4,
  "next_page_url": "http://my.app/api/admin/users?page=2",
  "prev_page_url": null,
  "from": 1,
  "to": 15,
  "data": [
    {
      // Result Object
    },
    {
      // Result Object
    }
  ]
}

Но вторая похожа на:

{
    "data": [
        {
            // Result Object
        },
        {
            // Result Object
        }
    ],
    "links":{
        "first": "http://my.app/api/app/users?page=1",
        "last": "http://my.app/api/app/users?page=2",
        "prev": null,
        "next": null
    },
    "meta":{
        "current_page": 1,
        "from": 1,
        "last_page": 2,
        "path": "http://my.app/api/admin/users",
        "per_page": 15,
        "to": 15,
        "total": 25
    }
}

, почему ответы, разбитые на страницы Laravel, имеютотличается структура JSON?

1 Ответ

0 голосов
/ 18 февраля 2019

Как выглядит ваш UserCollection класс?

На первый взгляд это выглядит так, потому что первый метод AdminUserController@index конвертирует ответ в JSON, а второй метод ClientUserController @index - этовозвращая коллекцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...