Heim  >  Artikel  >  CMS-Tutorial  >  So schreiben Sie eine API-Schnittstelle in dedecms

So schreiben Sie eine API-Schnittstelle in dedecms

尚
Original
2019-07-31 10:55:535807Durchsuche

So schreiben Sie eine API-Schnittstelle in dedecms

Das JSON-Datenformat kann den Datenabruf und die Referenzierung zwischen verschiedenen Sites erleichtern. Natürlich kann unser DEDECMS auch JSON für den Aufruf anderer Sites generieren einfach und hauptsächlich verwendet include/json.class.php.

Dreamweaver selbst verfügt über ein eigenes JSON-Tag, die aufrufende Methode:

{dede:json url='http://yoursite/json.php' cache=300}
[field:id/]-[field:title/]<br/>
{/dede:json}


Dieses Tag-Aufrufbeispiel wurde uns im Dreamweaver-Handbuch zur Verfügung gestellt, URL lautet Eine Remote-JSON-Schnittstellenadresse. Im json.php-Code dieser Schnittstellendatei muss die endgültige Rückgabe darin bestehen, die Daten über die Systemfunktion json_encode($feeds) zu übergeben und sie nach der JSON-Codierung über echo oder print() auszudrucken. Diese beiden Punkte sind erforderlich. Dann können wir die Daten über $.ajax() oder $.getjson() im Vordergrund abrufen. Das Dreamweaver-System stellt uns eine JSON-Klasse in der Datei include/json.class.php zur Verfügung. Das heißt, wenn wir die JSON-Codierung der PHP-Datei konvertieren, haben wir zwei Methoden:

1. Verwenden Sie direkt die Systemfunktion json_encode(), die uns vom PHP-System bereitgestellt wird. Sie ist einfach und problemlos. Da das PHP-System sie uns zur Verfügung stellt, können wir die von nicht bereitgestellte Funktion verwenden das DreamWeaver-System.

2. Verwenden Sie die vom DreamWeaver-System bereitgestellte Funktion encode(), bevor Sie json.class.php einführen, das heißt:

require_once(DEDEINC.&#39;/json.class.php&#39;);
$json = new Services_JSON(SERVICES_JSON_SUPPRESS_ERRORS);
echo $json->encode($reval);


Die Variable $reval erhalten wir aus der Datenbank oder von anderen Stellen. Es handelt sich normalerweise um ein zweidimensionales Array, zum Beispiel:

  Array (
  [0] => Array ( [id] => 95 [title] => 原图设计)
  [1] => Array ( [id] => 113 [title] => ssssssssssss)
  [2] => Array ( [id] => 111 [title] => hjhj )
  [3] => Array ( [id] => 110 [title] => ssssssssssss)
     )

Nach dem Echo sieht der angezeigte Inhalt wie folgt aus.

  [
   {"id":"95","title":"\u539f\u521b"},
   {"id":"113","title":"ssssssssssss"},
   {"id":"111","title":"hjhj"},
   {"id":"110","title":"ssssssssssss"}
  ]



Dies ist der Inhalt, der nach „encoding()“ oder der Verwendung von „json_encode()“ angezeigt wird. Das heißt, mehrere in eckige Klammern eingeschlossene JSON-Daten werden an die angeforderte $.ajax() oder $.getjson() zurückgegeben, die die Daten verarbeitet und die gewünschten Ergebnisse anzeigt.

Da Sie nun das Prinzip kennen, ist der nächste Schritt die detaillierte Implementierungsmethode wie folgt:

Erstellen Sie zunächst eine neue PHP-Datei und nennen Sie sie json.php ( Sie können auch einen neuen Ordner erstellen und ihn „API“ nennen, und PHP wird dann „index.php“ genannt. Beim Aufruf müssen Sie ihn also nur wie http://Ihr Domänenname/API aufrufen, der als aufgerufener Ordner verwendet wird API-Schnittstelle. Der Code lautet wie folgt:

<?php
$cfg_NotPrintHead = false;
header("Content-Type: text/html; charset=utf-8");
include_once (dirname(__FILE__)."/../include/common.inc.php");
error_reporting(E_ALL || ~E_NOTICE);
require_once(DEDEINC.&#39;/json.class.php&#39;);
$reval = array();
$dsql->SetQuery("SELECT id,title FROM `dede_archives` ORDER BY id DESC LIMIT 0,10");
$dsql->Execute(&#39;me&#39;);
while ($row = $dsql->GetArray(&#39;me&#39;)) {
$row[&#39;title&#39;] = gb2utf8($row[&#39;title&#39;]);
$reval[] = $row;
}
$json = new Services_JSON(SERVICES_JSON_SUPPRESS_ERRORS);
echo $json->encode($reval);
?>

Der Code hier wurde von GBK in UTF8 konvertiert, sodass er mit der GBK-Version von DEDECMS kompatibel ist

Aufrufmethode:

{dede:json url=&#39;http://域名/json.php&#39; cache=300}
[field:id/]-[field:title/]<br/>
{/dede:json}

Fügen Sie den Aufrufcode einfach dort ein, wo Sie ihn benötigen

cache=300 Cache-Zeit, 0 bedeutet kein Caching

Empfohlen: dedecms-Nutzungsanleitung

Das obige ist der detaillierte Inhalt vonSo schreiben Sie eine API-Schnittstelle in dedecms. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn