2014-02-22 11 views
47

Ich erstelle meine erste API, bei der, wenn zwei Werte übergeben werden, ich die Antwort im JSON-Format erhalten sollte. Die Nummer wird als Parameter per POST übergeben. Entweder mit cURL oder welcher POST-Methode auch immer verfügbar ist.Erstellen einer REST-API mit PHP

Obwohl dies ein sehr einfaches ist, würde ich gerne die Best Practices kennen und die API sollte von Model-Controller-Basis erstellt werden. Nicht nur einfaches PHP.

Ich habe für viele REST-API-Tutorials gegoogelt. Sie waren gut und ich habe etwas Wissen darüber erworben.

Aber ich möchte ein Beispielmodell des Codes erhalten, so dass ich darauf verweisen und mein eigenes und dieses Beispiel natürlich in der Standardpraxis der Herstellung einer echten REST API erstellen kann.

Wenn Sie mich fragen, was ich versucht habe, wäre es wirklich Spaß, als Anfänger, alles, was ich tun konnte, ist dies:

$num1 = $_REQUEST['num1']; 
$num2 = $_REQUEST['num2']; 

$total = $num1 + $num2; 
echo json_encode($total); 

Natürlich kann dies nie ein API, aber immer noch genannt werden. Wenn ich eine POST-Antwort darauf gebe, möchte ich die Antwort von der REST-API als JSON. Ich sollte es auch mit der REST-Konsole testen können, damit ich eine Standardantwort bekomme.

Bitte stellen Sie mir eine sehr einfache aber dennoch eine Standard RESTful API zur Verfügung.

+0

Werfen Sie einen Blick auf https://github.com/peej/tonic –

+0

@GajusKuizinas Völlig anders, als ich ihre Fragen lesen asked.Do, bevor Sie – Piya

+3

Kommentar @PiyaSharma Sie jemand gefragt haben, Forschung zu machen und den Code schreiben für Sie. – Gajus

Antwort

71

In Ihrem Beispiel ist es in Ordnung, es ist einfach und funktioniert. Die einzigen Dinge, die ich würde vorschlagen, sind:

  1. Validierung der Daten POSTed
  2. stellen Sie sicher, Ihre API den Content-Type Header sendet den Client anweisen, eine JSON-Antwort zu erwarten:

    header('Content-Type: application/json'); 
    echo json_encode($response); 
    

Darüber hinaus ist eine API etwas, das eine Eingabe nimmt und eine Ausgabe bereitstellt. Es ist möglich, Dinge zu "über-konstruieren", indem Sie Dinge komplizierter machen, die notwendig sind.

Wenn Sie die Route der Controller und Modelle nach unten gehen möchten, dann lesen Sie die MVC pattern und erarbeiten Sie, wie Ihre Domain-Objekte hineinpassen. Betrachtet man das obige Beispiel, sehe ich vielleicht eine MathController mit einer add() Aktion/Methode.

Es gibt einige Startpunktprojekte für RESTful-APIs unter GitHub, die einen Blick wert sind.

+0

Oh, das war eine gute Antwort. Vielen Dank. – Piya

+0

Diejenigen, die diese Antwort abgelehnt haben, wäre es gut, wenn Sie einen Kommentar hinterlassen könnten, warum. –

+0

Ich empfehle das schlanke 3-Framework zum Schreiben einer REST-API in PHP - einen Blick wert mindestens :) Vor allem, weil Sie Ihre Authentifizierung und ACL als Middleware-Schichten (und Content-Verhandlung) hinzufügen können, die einfach genial ist. –

17

Der Versuch, eine REST-API von Grund auf zu schreiben, ist keine einfache Aufgabe. Es gibt viele Probleme zu berücksichtigen und Sie müssen eine Menge Code schreiben, um Anfragen und Daten von dem Anrufer zu verarbeiten, Authentifizierung, Daten abrufen und Antworten zurücksenden.

Am besten verwenden Sie ein Framework, das diese Funktionalität bereits für Sie bereithält.

Einige Vorschläge sind:

Phalcon - REST API building - Einfach alles in einem Rahmen mit großer Leistung verwenden

Apigility - A one size fits alle API Handhabung Rahmen von Zend Technologies

Laravel API Building Tutorial

und viele mehr. Einfache Suchvorgänge auf Bitbucket/Github geben Ihnen viele Ressourcen, mit denen Sie beginnen können.

+0

Vielen Dank für Ihre Antwort. Ich werde sie überprüfen – Piya

Verwandte Themen