Как показать ответ JSON после изменения метода HTTP в Почтальоне? - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть API, и есть метод входа в систему с типом запроса POST, поэтому, когда я нажимаю путь API в почтальоне с типом запроса POST, он работает нормально, но когда я изменяю тип запроса на GET, он показывает ошибку,Я хочу показать ответ JSON здесь, как это сделать

Это с методом POST

This is with POST method

Это с методом GET

This is with GET method

Ответы [ 4 ]

0 голосов
/ 20 ноября 2018

В вашем файле api.php добавьте общий маршрут, чтобы перехватить любые несопоставленные маршруты и отправить оттуда ошибку.

Route::get('/{any}', function () {
    $data = [
        'error' => [
            'message' => 'Unkown endpoint',
            'statusCode' => 404
        ]
    ];
    return Response::json($data, 404);
})->where('any', '.*');
0 голосов
/ 20 ноября 2018

Я думаю, что ваш маршрут "api / auth / singup" принимает только запрос POST, вам нужно посмотреть файл маршрута и разрешить метод GET.

0 голосов
/ 20 ноября 2018

Вы можете обработать исключение в App\Exceptions\Handler, как показано ниже:

// if (request()->expectsJson())
// Or if you want to handle just for `api` routs:
if(request()->is('api/*')) {
    if ($exception instanceof MethodNotAllowedExceptionFormatter) {
        return response()->json(['message' => 'your message here'], 405);
    }
}

Но если вы хотите разрешить оба GET & POST запроса по вашему маршруту, вы можете сделать это в файле web.php:

Route::match(['GET', 'POST'], 'login', 'YourController@method');

А затем в вашем контроллере сделайте следующее:

function yourMethod () {
    if (request()->method() == \Illuminate\Http\Request::METHOD_GET) {
        // do this;
    }
    else if (request()->method() == \Illuminate\Http\Request::METHOD_POST) {
        // do that;
    }
}
0 голосов
/ 20 ноября 2018

Просто добавьте "_method" в тело POST.

Параметр _method может принимать значения [GET, POST, PUT, DELETE].

Пример:

_method: GET
name: xxxx
email: xxxx@xxx.com
password: 123xxx
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...