Latest web development tutorials
×

PHP Kurs

PHP Kurs PHP Kurze Einführung PHP installieren PHP Grammatik PHP Variable PHP echo/print PHP Datentypen PHP Konstante PHP Schnur PHP Die Betreiber PHP If...Else PHP Switch PHP Feld PHP Sortieren eines Array PHP Superglobals PHP While Verkehr PHP For Verkehr PHP Funktion PHP Magische Variablen PHP Namespaces PHP Objektorientiert

PHP Form

PHP Form PHP Formularauthentifizierung PHP Form - Erforderliche Felder PHP Form - Überprüfung E-Mail und URL PHP Komplette Formularinstanz PHP $_GET Variable PHP $_POST Variable

PHP Erweiterte Tutorial

PHP Mehrdimensionale Arrays PHP Datum PHP enthalten PHP Datei PHP Datei-Upload PHP Cookie PHP Session PHP E-mail PHP Sicherheit E-mail PHP Error PHP Exception PHP Filter PHP Erweiterte Filter PHP JSON

PHP 7 Neue Funktionen

PHP 7 Neue Funktionen

PHP Datenbank

PHP MySQL Kurze Einführung PHP MySQL Verbindung PHP MySQL Erstellen einer Datenbank PHP MySQL Erstellen Sie eine Datentabelle PHP MySQL einfügen von Daten PHP MySQL Legen Sie mehrere Daten PHP MySQL Prepared Statements PHP MySQL Lesen Sie Daten 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 Kurze Einführung AJAX PHP AJAX Datenbank AJAX XML AJAX Echtzeitsuche AJAX RSS Reader AJAX Abstimmung

PHP Referenzhandbuch

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 Bildverarbeitung PHP RESTful

PHP RESTful

REST (englisch: Representational State Transfer, genannt REST), bezieht sich auf eine Reihe von architektonischen Zwänge und Prinzipien.

REST-Stil Web-API-Design ist eine RESTful API genannt. Es wird aus den folgenden drei Ressourcen definiert:

  • Intuitive kurze Adresse Ressource: URI, zum Beispiel: http://example.com/resources/ .
  • Übertragungsressource: Web Service die Rückkehr von Internet-Medientypen akzeptiert, wie zB: JSON, XML, YAM mögen.
  • Der Betrieb von Ressourcen: Web-Service-Methode in einer Reihe von Anforderungen an die Ressource unterstützt (zB: POST, GET, PUT oder DELETE).

Dieses Tutorial werden wir die PHP (kein Rahmen) verwenden, um eine RESTful Web-Service zu erstellen, können Sie am Ende des Artikels herunterladen Sie den Code in diesem Abschnitt zu verwenden.

In diesem Tutorial lernen Sie wie folgt vor:

  • Erstellen Sie eine RESTful Webservice.
  • Mit nativen PHP, hängt nicht von jedem Rahmen.
  • REST-URI-Muster, die Regeln zu befolgen.
  • RESTful-Dienst akzeptiert und das Format JSON, XML zurückgegeben werden können und so weiter.
  • HTTP-Statuscodes Antwort abhängig von der Situation entspricht.
  • Demo-Anfragen Header.
  • Verwenden Sie REST-Client RESTful Web-Service zu testen.

Beispiele für RESTful Webservice

Der folgende Code ist RESTful Serviceklasse seite.php:

Beispiele

<? Php
/ *
* Dieses Tutorial zeigt Beispiele von RESTful
* RESTful Service - Klasse
* /
Class - Site {

private $ sites = array (
1 => 'TaoBao',
2 => "Google",
3 => 'w3big',
4 => 'Baidu',
5 => 'Weibo',
6 => 'Sina'

);


public function getAllSite () {
Diese Rückkehr $ -> Websites;
}

public function getSite ($ id) {

$ Site = array ($ id = > ($ this -> Websites [$ id]) $ this -> Websites [$ id] :? $ this -> Websites [1]);
return $ Ort;
}
}
?>

RESTful Dienste URI-Mapping

RESTful Dienste URI sollte auf eine kurze visuelle Ressourcen-Adresse eingestellt werden. .htaccess Apache-Server sollte entsprechende Rewrite-Regeln eingerichtet werden.

In diesem Beispiel werden wir zwei URI-Regeln verwenden:

1, eine Liste aller Seiten, zu erhalten:

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

2, die ID für die angegebene Website, die folgende URI die ID von 3 Seiten zu bekommen:

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

.htaccess Datei - Konfigurationsregeln des Projekts sind wie folgt:

# 开启 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

In der.htaccess - Datei, werden wir , indem sie durch die Einstellung der Parameter 'view', die entsprechenden Antrag stellen 'Ansicht' die verschiedenen Parameter erhalten RestController.php verschiedenen Methoden zu verteilen.RestController.php Datei Code ist wie folgt:

Beispiele

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

$ View = "";
if (isset ($ _GET & # 91; "view" & # 93;))
$ View = $ _GET & # 91 ; "view" & # 93 ;;
/ *
* RESTful Service Controller
* URL - Mapping
* /
switch ($ view) {

Fall "alle":
// Handle REST URL / site / Liste /
$ SiteRestHandler = new SiteRestHandler ();
$ SiteRestHandler -> getAllSites ();
brechen;

Fall "single":
// REST Griff URL / site / Show / < id> /
$ SiteRestHandler = new SiteRestHandler ();
$ SiteRestHandler -> getSite ($ _GET [ "id"]);
brechen;

Fall "":
// 404 - wurde nicht gefunden;
brechen;
}
?>

Einfache RESTful Foundation Classes

Im Folgenden wird eine Basisklasse RESTful für die Verarbeitung in Reaktion auf die Anforderung des HTTP - Statuscode, Datei Code SimpleRest.php ist wie folgt:

Beispiele

<? Php
/ *
* Eine einfache Basisklasse RESTful Web Services
* Wir können diese Klasse erweitern basierend auf Nachfrage
* /
Klasse SimpleRest {

private $ httpVersion = "HTTP / 1.1 ";

public function setHttpHeaders ($ content, $ status) {

$ Status = $ this -> getHttpStatusMessage ($ status);

Header ($ this -> httpVersion " " $ status .. "" $ status ..);
header ( "Content-Type:" $ content.);
}

public function getHttpStatusMessage ($ status) {
$ Httpstatus = array (
100 => 'Weiter',
101 => 'Switching Protocols ",
200 => 'OK',
201 => 'Erstellt',
202 => 'akzeptiert',
203 => 'Nicht verbindliche Informationen ',
204 => 'Kein Inhalt',
205 => 'Reset Inhalt',
206 => 'Partial Content',
300 => 'Multiple Choices',
301 => 'dauerhaft verschoben',
302 => 'gefunden',
303 => 'Siehe Andere',
304 => 'Not Modified',
305 => 'Proxy verwenden',
306 => '(Nicht verwendete) " ,
307 => 'Temporary Redirect',
400 => 'Bad Request',
401 => 'Unerlaubte',
402 => 'Zahlung erforderlich',
403 => 'Forbidden',
404 => 'nicht gefunden ",
405 => 'Methode nicht erlaubt' ,
406 => 'Nicht akzeptabel',
407 => 'Proxy - Authentifizierung erforderlich' ,
408 => 'Request Timeout',
409 => 'Konflikt',
410 => 'Vorbei',
411 => 'Length Required',
412 => 'Vorbedingung nicht erfüllt ",
413 => 'Antrag Wesen zu groß ",
414 => 'Request-URI Too Long',
415 => 'Nicht unterstützter Medientyp' ,
416 => ' Die gesuchte Strecke nicht erfüllbar ',
417 => 'Erwartung verlassen',
500 => 'Internal Server Error " ,
501 => 'Nicht implementiert ",
502 => 'Bad Gateway',
503 => 'Service nicht verfügbar ",
504 => 'Gateway - Timeout',
505 => 'HTTP - Version wird nicht unterstützt ");
return ($ httpstatus [$ status] ) $ httpstatus [$ status]: $ status [500] ;?
}
}
?>

RESTful Web Service Verarbeitungsklasse

Das Folgende ist eine RESTful Web Service-Handler-Klasse SiteRestHandler.php, erbte die oben wir RESTful Basisklasse zur Verfügung stellen, die Klasse durch die Parameter des Antrags bestimmt wird, um zu bestimmen, ob die zurückgegebenen HTTP-Statuscodes und Datenformate, wir Beispiele von drei Datenformate zur Verfügung stellen: "application / json", "application / xml" oder "text / html":

SiteRestHandler.php Datei Code ist wie folgt:

Beispiele

<? Php
require_once ( "SimpleRest.php");
require_once ( "seite.php");

Klasse SiteRestHandler erweitert SimpleRest {

Funktion getAllSites () {

$ Site = new Website ();
$ RawData = $ site -> getAllSite ();

if (empty ($ rawData)) {
$ Status = 404;
$ RawData = array ( 'error' => 'nicht gefunden!');
} Else {
$ Status = 200;
}

$ RequestContentType = $ _SERVER [ 'HTTP_ACCEPT '];
$ This -> setHttpHeaders ($ requestContentType , $ status);

if (strpos ($ requestContentType " application / json ')! == false) {
$ Response = $ this -> encodeJson ($ rawData);
$ Antwort Echo;
} Else if (strpos ($ requestContentType , 'text / html')! == False) {
$ Response = $ this -> encodeHtml ($ rawData);
$ Antwort Echo;
} Else if (strpos ($ requestContentType "application / xml ')! == False) {
$ Response = $ this -> encodeXml ($ rawData);
$ Antwort Echo;
}
}

public function encodeHtml ($ response) {

$ HtmlResponse = "<table border = " 1 ">";
foreach ($ response wie $ key = > $ value) {
.. $ HtmlResponse = "<tr > <td>" $ key "</ td> <td>" $ value "</ td> </ tr>" ...;
}
. $ HtmlResponse = "</ table >";
return $ htmlResponse;
}

public function encodeJson ($ response) {
$ JsonResponse = json_encode ($ response) ;
return $ jsonResponse;
}

public function encodeXml ($ response) {
// Erstellen Sie ein Objekt SimpleXMLElement
$ Xml = new SimpleXMLElement ( '< site> </ site> < ? Xml version = "1.0" ??>');
foreach ($ response wie $ key = > $ value) {
$ Xml -> addChild ($ key , $ value);
}
return $ xml -> asXML () ;
}

public function getSite ($ id) {

$ Site = new Website ();
$ RawData = $ site -> getSite ($ id);

if (empty ($ rawData)) {
$ Status = 404;
$ RawData = array ( 'error' => 'nicht gefunden!');
} Else {
$ Status = 200;
}

$ RequestContentType = $ _SERVER [ 'HTTP_ACCEPT '];
$ This -> setHttpHeaders ($ requestContentType , $ status);

if (strpos ($ requestContentType " application / json ')! == false) {
$ Response = $ this -> encodeJson ($ rawData);
$ Antwort Echo;
} Else if (strpos ($ requestContentType , 'text / html')! == False) {
$ Response = $ this -> encodeHtml ($ rawData);
$ Antwort Echo;
} Else if (strpos ($ requestContentType "application / xml ')! == False) {
$ Response = $ this -> encodeXml ($ rawData);
$ Antwort Echo;
}
}
}
?>

Als nächstes werden wir durch http: // localhost / restexample / site / Liste / besuchen, sind die Ausgabeergebnisse wie folgt:


RESTful Web Service Client

Dann können wir den Google-Browser Chrome "Advance-REST-Client" als RESTful Web Service-Clients nutzen, um unsere Dienstleistungen anfordern.

Beispiele für die Anfrage http: // localhost / restexample / site / Liste / Adresse, die empfangenen Daten ähnlich wieAccept: application / json

3 Anfrage-ID-Website w3big (Tutorial), die Zugriffsadresse http: // localhost / restexample / site / Liste / 3 /,

Quelle herunterladen

Der Code im Beispiel den Button klicken zum Download:

Quelle herunterladen