Обработка сложных параметров GET с помощью HTTP-маршрутизации Slim Framework

Предполагая следующий наивный код:

$app->get( '(/store(/:url)+)', function( $url = NULL ) use ( $app ) 
    {
        // Execute actions on $url
    });

Вышеупомянутое отлично работает для следующего:

http://localhost/api/0001/store/url-data

Но это не удается для:

http://localhost/api/0001/store/http%3A%2F%2Fexample.com%2FSomething
http://localhost/api/0001/store/http://example.com/Something

// and other variations

Я хочу передать полный закодированный URI для обработки на стороне сервера. Как я могу сделать это со Слимом?

Примечания:

Другие типы HTTP-запросов (POST, PUT) не будут работать для данной проблемы.

Это можно решить с другой стороны, переформатировав (сериализовав) URI, но я хочу, чтобы это было моим последним средством.

Важное изменение – ответ

Таким образом, вышеизложенное является ошибкой в ​​​​фреймворке, который в настоящее время тестируется и, надеюсь, исправлен и выпущен в ближайшее время. Я временно решил проблему, сериализовав URI до того, как он достигнет серверной части.


person Bassem    schedule 04.06.2013    source источник
comment
Вы можете сами отвечать на свои вопросы и принимать свой ответ ^_^   -  person rm-vanda    schedule 25.09.2014
comment
Передача URL-адреса в виде сегмента URL-адреса для отдыха - не лучшее решение... Вместо этого я предлагаю вам использовать параметр get.   -  person bonaccorso.p    schedule 12.10.2014


Ответы (1)


Таким образом, вышеизложенное является ошибкой в ​​​​фреймворке, который в настоящее время тестируется и, надеюсь, исправлен и выпущен в ближайшее время. Я временно решил проблему, сериализовав URI до того, как он достигнет серверной части.

person Bassem    schedule 29.10.2014