Latest web development tutorials
×

PHP курс

PHP курс PHP Краткое введение PHP устанавливать PHP грамматика PHP переменная PHP echo/print PHP Типы данных PHP постоянная PHP строка PHP операторы PHP If...Else PHP Switch PHP массив PHP Сортировка массива PHP Суперглобальные PHP While циркуляция PHP For циркуляция PHP функция PHP Магические Переменные PHP Пространства имен PHP Объектно-ориентированный

PHP форма

PHP форма PHP Аутентификация с помощью форм PHP форма - Обязательные для заполнения поля PHP форма - Проверка электронной почты и URL PHP Полный экземпляр формы PHP $_GET переменная PHP $_POST переменная

PHP Расширенный учебник

PHP Многомерные Массивы PHP дата PHP содержать PHP файл PHP Загрузка файлов PHP Cookie PHP Session PHP E-mail PHP безопасности E-mail PHP Error PHP Exception PHP фильтр PHP Расширенный фильтр PHP JSON

PHP 7 Новые возможности

PHP 7 Новые возможности

PHP база данных

PHP MySQL Краткое введение PHP MySQL подключение PHP MySQL Создание базы данных PHP MySQL Создание таблицы данных PHP MySQL Вставка данных PHP MySQL Вставка нескольких данных PHP MySQL Подготовленные выражения PHP MySQL Считывание данных PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX Краткое введение AJAX PHP AJAX база данных AJAX XML AJAX Поиск в реальном времени AJAX RSS Reader AJAX голосование

PHP справочное руководство

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP обработка изображений PHP RESTful

PHP RESTful

ОСТАЛЬНЫЕ (на английском языке: Representational State Transfer, называется REST), относится к набору архитектурных ограничений и принципов.

REST-стиль дизайна Web API называется RESTful API. Она определяется из следующих трех ресурсов:

  • Интуитивный краткий адрес ресурса: URI, например: http://example.com/resources/ .
  • ресурс передачи: веб-служба принимает возвращения типов интернет-СМИ, таких как: JSON, XML, ЯМ нравится.
  • Эксплуатация ресурсов: метод веб-службы в серии запросов на ресурс при поддержке (например: POST, GET, PUT или DELETE).

В этом руководстве мы будем использовать PHP (без рамки), чтобы создать RESTful веб-сервиса, вы можете скачать в конце статьи, чтобы использовать код в этом разделе.

В этом учебнике вы узнаете следующее:

  • Создание RESTful веб-сервиса.
  • С помощью встроенного PHP, не зависит от любых рамок.
  • REST URI шаблон, чтобы следовать правилам.
  • RESTful сервис принимает и формат может быть возвращен JSON, XML и так далее.
  • Коды статуса HTTP соответствующего ответа в зависимости от ситуации.
  • Демонстрационные запросы заголовка.
  • для тестирования веб-службы RESTful Используйте REST клиент.

Примеры RESTful Webservice

Следующий код RESTful класс обслуживания Site.php:

примеров

<? PHP
/ *
* В данном руководстве примеры RESTful
* RESTful класс обслуживания
* /
Класс сайта {

частные $ сайтов = массив (
1 => 'TaoBao',
2 => 'Google',
3 => 'w3big',
4 => 'Baidu',
5 => 'Weibo',
6 => 'Сина'

);


общественная функция getAllSite () {
вернуть $ это -> сайты;
}

общественная функция getSite ($ ID) {

$ Сайт = массив ($ ID = > ($ это -> сайты [$ ID]) $ это -> сайты [$ ID] :? $ это -> сайты [1]);
вернуть $ сайт;
}
}
?>

отображение RESTful Services URI

REST-службы URI должен быть установлен в положение краткого адреса визуальных средств. сервер Apache .htaccess должен быть установлен соответствующий правила перезаписи.

В этом примере мы будем использовать два правила URI:

1, чтобы получить список всех сайтов:

http://localhost/restexample/site/list/

2, используя идентификатор для указанного сайта, следующий URI, чтобы получить идентификатор 3 сайтов:

http://localhost/restexample/site/list/3/

.htaccess правила конфигурации файла проекта заключаются в следующем:

# 开启 rewrite 功能
Options +FollowSymlinks
RewriteEngine on

# 重写规则
RewriteRule ^site/list/$   RestController.php?view=all [nc,qsa]
RewriteRule ^site/list/([0-9]+)/$   RestController.php?view=single&id=$1 [nc,qsa]

RESTful Web Service Controller

В файле.htaccess, мы получим RestController.php подать соответствующий запрос, установив параметр "вид", получая различные параметры 'View' для распространения различных методов.Код файла RestController.php выглядит следующим образом :

примеров

<? PHP
require_once ( "SiteRestHandler.php");

$ Вид = "";
если (Исеть ($ _GET & # 91; "вид" & # 93;))
$ Вид = $ _GET & # 91 ; "вид" & # 93 ;;
/ *
* RESTful контроллер службы
* Отображение URL
* /
Переключатель ($ вид) {

случай "все":
// Обработать REST URL / сайт / список /
$ SiteRestHandler = новый SiteRestHandler ();
$ SiteRestHandler -> getAllSites ();
перерыв;

случай "сингл":
// Обработать REST URL / сайт / шоу / < идентификатор> /
$ SiteRestHandler = новый SiteRestHandler ();
$ SiteRestHandler -> getSite ($ _GET [ "ID"]);
перерыв;

случай "":
// 404 - не найден;
перерыв;
}
?>

Простые классы RESTful Foundation

Ниже приводится базовый класс RESTful для обработки в ответ на запрос кода статуса HTTP, код файла SimpleRest.php выглядит следующим образом :

примеров

<? PHP
/ *
* Простой RESTful веб - сервисы базового класса
* Мы можем расширить этот класс на основе спроса
* /
Класс SimpleRest {

частный $ httpVersion = "HTTP / 1.1 ";

публичная функция setHttpHeaders ($ CONTENTTYPE, $ StatusCode) {

$ StatusMessage = $ это -> getHttpStatusMessage ($ StatusCode);

заголовка ($ это -> httpVersion " " $ StatusCode .. "" $ StatusMessage ..);
заголовок ( "Content-Type:" $ CONTENTTYPE.);
}

общественная функция getHttpStatusMessage ($ StatusCode) {
$ HttpStatus = массив (
100 => 'Продолжить',
101 => 'Переключение протоколов',
200 => 'OK',
201 => ' Дата создания',
202 => 'Принято',
203 => 'Неавторитетная информация ',
нет 204 => 'No Content',
205 => 'Reset Content',
206 => 'Partial Content',
300 => 'Multiple Choices',
301 => 'Переведен Постоянно',
302 => 'Найдено',
303 => 'См Other',
304 => 'Not Modified',
305 => 'Использовать прокси - сервер ",
306 => '(не используется)' ,
307 => 'Temporary Redirect',
400 => 'Bad Request',
401 => 'Несанкционированное',
402 => 'Требуется оплата',
403 => 'Запрещенный',
404 => 'Not Found',
405 => 'Method Not Allowed' ,
406 => 'Не Приемлемый',
407 => 'Требуется проверка подлинности прокси » ,
408 => 'Тайм - аут запроса',
409 => 'Конфликт',
410 => 'Унесенных',
411 => 'Длина Обязательный',
412 => 'Precondition Failed',
413 => 'Request Entity Too Large ",
414 => 'Request-URI Too Long',
415 => 'Неподдерживаемый Тип носителя' ,
416 => 'Невыполнимый диапазон запроса ',
417 => 'Expectation Failed',
500 => 'Внутренняя ошибка сервера » ,
501 => 'Не реализовано',
502 => 'Bad Gateway',
503 => 'Service Unavailable',
504 => 'Тайм - аут шлюза',
505 => 'версия HTTP не поддерживается ");
Возвращение ($ httpStatus [$ StatusCode] ) $ httpStatus [$ StatusCode]: $ статус [500] ;?
}
}
?>

RESTful класс обработки Web Service

Ниже приводится RESTful Web Service класса обработчика SiteRestHandler.php, унаследовал выше мы предоставляем RESTful базовый класс, класс определяется параметрами запроса, чтобы определить, является ли возвращаемые коды состояния HTTP и форматы данных, мы предоставляем примеры трех форматов данных: "приложение / JSON", "приложение / XML" или "текст / html":

Код файла SiteRestHandler.php выглядит следующим образом :

примеров

<? PHP
require_once ( "SimpleRest.php");
require_once ( "Site.php");

Класс SiteRestHandler расширяет SimpleRest {

Функция getAllSites () {

$ = Новый сайт сайта ();
$ RAWDATA = $ сайт -> getAllSite ();

если (пусто ($ RAWDATA)) {
$ StatusCode = 404;
$ RAWDATA = массив ( 'ошибка' => 'сайтов не найдено!');
} Else {
$ StatusCode = 200;
}

$ RequestContentType = $ _SERVER [ 'HTTP_ACCEPT '];
$ Это -> setHttpHeaders ($ requestContentType , $ StatusCode);

если (StrPos ($ requestContentType, ' приложение / JSON')! == FALSE) {
$ Ответ = $ это -> encodeJson ($ RAWDATA);
Эхо $ ответ;
} Иначе , если (StrPos ($ requestContentType , "текст / html ')! == False) {
$ Ответ = $ это -> encodeHtml ($ RAWDATA);
Эхо $ ответ;
} Иначе , если (StrPos ($ requestContentType , 'приложение / XML')! == False) {
$ Ответ = $ это -> encodeXml ($ RAWDATA);
Эхо $ ответ;
}
}

общественная функция encodeHtml ($ responseData) {

$ HtmlResponse = "<таблица граница = '1'>";
Еогеасп ($ responseData , как $ ключ = > $ значение) {
.. $ HtmlResponse = "<тр > <TD>" $ ключ "</ TD> <TD>" $ значение "</ TD> </ TR>" ...;
}
. $ HtmlResponse = "</ таблица >";
вернуть $ htmlResponse;
}

общественная функция encodeJson ($ responseData) {
$ JsonResponse = json_encode ($ responseData) ;
возврат $ jsonResponse;
}

общественная функция encodeXml ($ responseData) {
// Создание объекта SimpleXMLElement
$ XML = новый SimpleXMLElement ( '< сайт> </ сайта> <XML версия = "1.0" ??>');
Еогеасп ($ responseData , как $ ключ = > $ значение) {
$ XML -> AddChild ($ ключ , $ значение);
}
возврат $ XML -> asXML () ;
}

общественная функция getSite ($ ID) {

$ = Новый сайт сайта ();
$ RAWDATA = $ сайт -> getSite ($ ID);

если (пусто ($ RAWDATA)) {
$ StatusCode = 404;
$ RAWDATA = массив ( 'ошибка' => 'сайтов не найдено!');
} Else {
$ StatusCode = 200;
}

$ RequestContentType = $ _SERVER [ 'HTTP_ACCEPT '];
$ Это -> setHttpHeaders ($ requestContentType , $ StatusCode);

если (StrPos ($ requestContentType, ' приложение / JSON')! == FALSE) {
$ Ответ = $ это -> encodeJson ($ RAWDATA);
Эхо $ ответ;
} Иначе , если (StrPos ($ requestContentType , "текст / html ')! == False) {
$ Ответ = $ это -> encodeHtml ($ RAWDATA);
Эхо $ ответ;
} Иначе , если (StrPos ($ requestContentType , 'приложение / XML')! == False) {
$ Ответ = $ это -> encodeXml ($ RAWDATA);
Эхо $ ответ;
}
}
}
?>

Далее мы через HTTP: // локальный / restexample / сайт / список / визита, выходные результаты являются следующими:


RESTful Web Service Client

Тогда мы можем использовать в качестве RESTful клиентов веб-сервиса "Advance Rest клиента» в браузере Google Chrome, чтобы запросить наши услуги.

Примеры запроса HTTP: // локальный / restexample / сайт / список / адреса, полученные данные аналогичноAccept: приложения / JSON

3 запроса идентификатор сайта w3big (учебное пособие), адрес доступа HTTP: // локальный / restexample / сайт / список / 3 /,

Источник загрузки

Код, используемый в примере, чтобы нажать на кнопку ниже, чтобы загрузить:

Источник загрузки