Swagger.io Slim Framework POST-ошибки

Я использовал Swagger для создания Slim framework для сервера. Ничего не редактируя, тестирую основные функции. У меня есть один, расположенный по адресу /user/login. Вот сценарий, который у меня есть для этого:

$app = new Slim\App();
$app->POST('/user/login', function($request, $response, $args) {

    $queryParams = $request->getQueryParams();
    $username = $queryParams['username'];
    $password = $queryParams['password'];

    $response->write("Will not work");
    return $response;
});
$app->GET('/user/{user_id}', function($request, $response, $args) {

    $response->write('Works');
    return $response;
});

Однако, когда я пытаюсь POST перейти к URL-адресу с помощью Postman (приложение Chrome), это приводит к ошибке 500. Если я попробую любой из методов GET, он сработает. Кажется, это происходит только с методами POST.

У меня он работает на машине Ubuntu с Apache2, установленным с PHP. Я обновил все до последних доступных версий. ModRewrite включен, и переопределение установлено для всех. Пожалуйста помоги! На данный момент я в такой растерянности.


person Brian Logan    schedule 01.03.2016    source источник


Ответы (1)


Я нашел ошибку.

Обратите внимание, что у меня есть два URL-адреса, один в /user/login и /user/{user_id}, из-за двух начальных URL-адресов /user это сбивает с толку и не знает, какой использовать, что приводит к ошибке 500.

Переключение /user/login на /login устранило проблему.

Я чувствую себя глупо, потому что не знал, что это произойдет.

person Brian Logan    schedule 01.03.2016
comment
Это не должно быть проблемой, так как один из них — post(), а другой — get(). Я проверил ваш пример кода, и он работает для меня. Начиная с Slim 3.2, вы должны получить сообщение в журнале ошибок, показывающее фактическую ошибку. - person Rob Allen; 05.03.2016