Как получить и опубликовать в php с серверной стороны restful веб-службы - PullRequest
1 голос
/ 29 апреля 2009

Привет, кто-нибудь может пройти мимо кода, как сделать спокойный веб-сервис, получить и опубликовать метод. Это будет на стороне сервера, поэтому я смогу вызвать две службы с клиента.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 29 апреля 2009

Предположим, у вас есть скрипт index.php. Внутри него может быть две функции: showForm() и handleForm().

Предположим, что запрос поступил в index.php.

if (! empty($_SERVER['REQUEST_METHOD'])) {
    if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST')
    {
        doSomething();
    }
    else
    {
        showSomething();
    }
}

Вот, пожалуйста. ОСТАЛЬНОЕ. Если вы отправите запрос GET в index.php, вы увидите некоторые выходные данные, а если вы отправите запрос POST в index.php, вы будете выполнять некоторые манипуляции с данными. Вы можете использовать if для других типов запросов RESTful HTTP, таких как DELETE и т. Д.

Очевидно, что это очень простой пример, и я не хотел бы создавать весь сайт таким образом. Лучше всего приступить к созданию RESTful-сайта архитектурно обоснованным способом. Многие фреймворки могут помочь с этим.

REST - горячая тема сейчас, кажется, все хотят, чтобы их приложения были RESTful. В Google много статей и руководств, и вам, вероятно, стоит потратить некоторое время на изучение различных подходов.

Примечание об URL: URI не обязательно должны быть красивыми, чтобы быть RESTful. Однако ключевым моментом REST является то, что все URI должны представлять один ресурс. Поскольку параметры запроса не являются частью URI, «/index.php?show=2» не считается RESTful. Вы обнаружите, что многие приложения используют перезапись URL для преобразования параметров запроса в нечто вроде «/index/2».

Как говорится, нет ничего плохого в том, что "/index.php" в качестве URI, если только он представляет только одно состояние.

0 голосов
/ 29 апреля 2009
POST:
<?
// Helloworld_post.php
echo "Hello world <pre>"
print_r($_POST['data'];
?>

GET
<?
//helloworld_get.php
echo "Hello world <pre>"
print_r($_GET['data'];
?>

Что именно вы пытаетесь сделать? Вам нужно использовать mod_rewrite или его эквивалент, чтобы сделать pretty / helloworld / urls. Прелесть REST в том, что это просто стандартный http-запрос. Он не указывает кодировку json, кодировку xml или кодировку "wtf I am the 1337".

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