Подтвердить что ты не робот

Как создать службу веб-API в PHP

Возможный дубликат:
Нужно ли иметь wsdl файл для создания веб-службы в php?

Я хочу создать веб-API.

Мое требование состоит в том, что я хочу создать такой способ, чтобы мои клиенты могли вставлять/удалять данные из базы данных моего сайта, но я не хочу, чтобы клиенты напрямую регистрировались на моем сайте. Я хочу, чтобы они вызывали мой URL-адрес WSDL файла через клиентский запрос, который возвращает ответ клиенту.

Я слышал, что мы можем сделать это с помощью SOAP-вызова или NuSOAP. Я пробовал несколько методов после выполнения некоторых поисковых запросов, но не имел успеха.

Не могли бы вы рассказать мне пошаговые инструкции, как я могу это достичь.

4b9b3361

Ответ 1

В принципе, что такое API?

Если вы понимаете, как данные поступают из HTML-формы в php-код, доверьтесь мне, что вы знаете все об API. Здесь, а не говорящие формы, мы говорим о URL-адресах, которые создаются в конце этими формами..

Каковы типы API?

Существует два типа сильно используемых API для веб-сервисов: SOAP и REST. Google является одним из основных игроков с API, основанным на SOAP, в то время как Yahoo (и большинство их недавних приобретений) использует подход REST. Чаще всего, служба "Web 2.0", с которой вы сталкиваетесь сегодня, вероятно, будет использовать REST.

Как создать REST API в PHP с помощью ключа аутентификации для удаления значения из базы данных?

Допустим, у нас есть класс PHP (manage.php), который помогает нам управлять записями в базе данных:

class manage {    private $entryId;    function __construct($entryId) {
        $this->entryId = $entryId;
    }    function deleteEntry() {
        //delete $this->entryId from database
    }}

На нашем собственном сервере мы можем получить доступ к этой функции следующим образом:

require_once('manage.php');
$m = new manage(23);
$m->deleteEntry();

Достаточно легко для нас, но как мы разрешаем кому-то, кто не на нашем сервере, получить доступ к одной и той же функциональности? Для этого хорошо создайте третий файл, который будет действовать как буфер (или "интерфейс" ) между другими разработчиками и нашим классом. Вот пример файла, который мы могли бы создать, чтобы позволить разработчикам получить доступ к функции delete в нашем классе, поэтому найдите его в api/delete.php

require_once('manage.php');
if(hasPermission($_POST['api_key']) {
    $m = new manage($_POST['entry_id']);
    $m->deleteEntry();
}

Это позволит пользователям отправлять запрос POST нам http://example.com/api/delete.php с помощью api_key и entry_id. Вы заметите, что функция очень похожа на то, что мы написали на нашем собственном сервере, за исключением того, что мы проверяем переменную POST api_key, используя функцию, чтобы узнать, разрешено ли ей доступ к базе данных. Мы не включили эту функцию здесь (hasPermission) для простоты. В дополнение к тому, что показано, youd также должен найти учетную запись пользователя на основе api_key, поставить некоторые проверки ошибок и (если вы хотите создать хороший API) обеспечить должным образом отформатированный успех или ответ об ошибке после запроса. Хорошо входите в успех и ответы об ошибках немного.

Как создать хороший API и почему это имеет значение?

Я думаю, что это видео от Google может объяснить намного лучше меня... http://youtu.be/aAb7hSCtvGw ..

Ссылки:

http://en.wikipedia.org/wiki/Representational_state_transfer

http://en.wikipedia.org/wiki/SOAP

http://particletree.com/features/how-to-add-an-api-to-your-web-service/

http://www.webresourcesdepot.com/how-to-create-an-api-10-tutorials/

Результат поиска Google

Примечание: Ответ - это компиляция всех ссылок!!.