Создание веб-сервиса на PHP - PullRequest
3 голосов
/ 22 марта 2012

Я хотел бы создать веб-сервис на PHP, который может использоваться различными потребителями (веб-страница, устройство Android, устройство iOS).

Я пришел из Microsoft, поэтому мне удобносделать это в C # и т. д. В идеале я хотел бы иметь возможность предоставить REST-сервис, который может отправлять JSON.

Можете ли вы дать мне знать, как я могу добиться этого в PHP?

Спасибо

Тарик

Ответы [ 7 ]

7 голосов
/ 02 октября 2012

Я разработал класс, который является эквивалентом REST класса SoapServer для PHP.

Вы просто включаете файл RestServer.php и затем используете его следующим образом.

class Hello
{
  public static function sayHello($name)
  {
    return "Hello, " . $name;
  }
}

$rest = new RestServer(Hello);
$rest->handle();

Затем выможет выполнять вызовы из другого языка, например:

http://myserver.com/path/to/api?method=sayHello&name=World

(Обратите внимание, что не имеет значения, в каком порядке указываются параметры в строке запроса. Кроме того, имена ключей параметров, а также имя методабез учета регистра.)

Получить здесь .

0 голосов
/ 12 ноября 2013

Вы можете использовать любой существующий PHP-фреймворк, например CodeIgniter или Symfony или CakePHP для создания веб-сервисов.

Вы также можете использовать обычный PHP, как показано в этом примере

0 голосов
/ 12 ноября 2013

Вы также можете попробовать PHP REST Data Services https://github.com/chaturadilan/PHP-Data-Services

0 голосов
/ 04 апреля 2012

Вы можете проверить этот хороший сервер RESTful, написанный для Codeigniter, Сервер RESTful .Он поддерживает ответы XML, JSON и т. Д., Поэтому я думаю, что это ваша библиотека.Для этого в сети Tutsplus есть даже хорошее руководство - Работа с RESTful Services в CodeIgniter

0 голосов
/ 22 марта 2012

PHP имеет встроенную поддержку сервера SOAP ( Руководство по классу SoapServer показывает это), и я нашел его довольно простым в использовании.

Создание API в стиле REST довольно легко, если вы используете фреймворк. Я не хочу вступать в дискуссию о том, какая инфраструктура лучше, но CakePHP также поддерживает вывод в виде XML, и я уверен, что и другие тоже.

Если вы работаете в Microsoft, просто подумайте о «наборах данных». Они очень специфичны для Microsoft и были моим проклятием в прошлом. Возможно, это не будет проблемой для вас, но вы можете просто увидеть разницу между Microsoft и открытыми реализациями.

И, конечно, PHP имеет встроенную функцию json_encode () .

0 голосов
/ 22 марта 2012

Самый простой способ в PHP - использовать GET / POST для ввода данных и echo для вывода данных.Вот пример:

<?php if(empty($_GET['method'])) die('no method specified');
switch($_GET['method']){
   case 'add': { 
       if(empty($_GET['a']) || empty($_GET['b'])) die("Please provide two numbers. ");
       if(!is_numeric($_GET['a']) || !is_numeric($_GET['b'])) die("Those aren't numbers, please provide numbers. ");
       die(''.($_GET['a']+$_GET['b']));
       break; 
   }
}

Сохраните этот файл как test.php и перейдите на http://localhost/test.php?method=add&a=2&b=3 (или там, где находится ваш веб-сервер), и он должен сказать 5.

0 голосов
/ 22 марта 2012

Я бы посоветовал вам пойти на Yii, это стоит изучить. Вы можете легко установить это в этом. Веб-сервис . Yii предоставляет CWebService и CWebServiceAction для упрощения работы по внедрению веб-службы в веб-приложении. Веб-служба использует SOAP в качестве базового уровня стека протоколов связи.

...