Пагинат должен возвращать 206, а не 200 - PullRequest
0 голосов
/ 03 марта 2020

Я понял, что одна из лучших практик при использовании paginate с API - это возвращать код ответа 206 «частичное содержание». Но когда я делаю:

$users = DB::table('users')->paginate(15);

, а затем

return response()->json($users)

, он возвращает ответ 200.

Итак, как вернуть 206, а не 200, когда используя Laravel с функциями API и paginate? Это что-то существует? или я отвечаю за управление этим ответом?

Редактировать

Конечно, я могу передать 2O6 во втором параметре. Но я ожидаю чего-то более интеллектуального, что-то, что автоматически выдаст 206 или 200 в зависимости от результата разбивки на страницы.

Ответы [ 2 ]

3 голосов
/ 03 марта 2020

Вы можете использовать второй параметр:

return response()->json($users, 206)

Обновить

Если вы хотите автоматически вернуть 206, вы можете сделать помощник для переопределения response()->json($users, 'code').

У меня есть пакет помощников , который может вам помочь.

composer require kristories/laravel-helpers

Затем создайте нового помощника:

php artisan make:helper JsonResponseHelper

Редактировать app/Helpers/JsonResponseHelper.php:

function paginateResponse($data = []){
    return response()->json($data, 206);
}

Использование

Теперь вы можете использовать paginateResponse():

return paginateResponse($users);
0 голосов
/ 03 марта 2020

вы можете передать его по второму параметру;

return response()->json($users, 206);
...