2013-09-28 6 views
5

Ich möchte eine PHP-restige api-zentrische Web-Anwendung/Website erstellen, wo ich die Daten/API habe, die von meinem Front-End-Code aufgerufen wird. Abgesehen davon, dass ich bei jedem Laden einer Seite HTTP-/curl-Anforderungsaufrufe tätige, was kann ich für interne API-Aufrufe mit Frameworks wie "schlank" tun?So verwenden Sie ein PHP-restiges api-zentrisches Design intern statt mit http-Anforderung

Ich bin nicht sicher von einer Möglichkeit, die API für den internen Gebrauch in meinem Front-End-Code einzuschließen und es immer noch auseinander zu halten.

war meine Gedanken etwas wie folgt aus:

"example.com/api/story/todays-weather/" 
pulls in the json formatted story with a http request with curl or Ajax 

Aber stattdessen konnte ich so etwas wie:

require("/api/internal.php"); 
$uri = "/story/todays-weather/"; 
$call = api::getStory($uri); 
$result = json_decode($call); 
..... 

Bin ich in die richtige Richtung oder bin weg ich?

Der API und Front Code sind auf der gleichen Cloud-Box (Amazon E2/LAMP) und ich plane mit Memcached für die API.

+0

Ich denke, was Sie suchen, ist zusammen mit einer Möglichkeit, die API mit der URI von Ajax zu nennen, und locken wie dies, 'example.com/api/story/todays-weather' Sie auf das gleiche zugreifen möchten von einem anderen Teil von PHP-Code, die Front-End-Render? – Mohit

+0

Ich sehe keinen Grund, warum Sie das nicht tun können. Dadurch können Sie nur einen Code verwalten, während Sie die API für die externe Verwendung öffnen. Stellen Sie sicher, dass Sie durch Ihr Skalierungsmodell denken, damit Sie keine Überraschungen erleben. –

Antwort

0

Sie möchten also eine Code-Trennung zwischen Ihrer API und Front-End-Zeug haben? Sie können Slim Framework dazu verwenden, um einen einfach zu wartenden Code zu erhalten. Slim Framework ist sehr einfach zu schreiben Modelle und bereiten auch die Daten für die zukünftige Verwendung und sogar zwischenspeichern.

haben Sie auch einen Blick auf dieser Liste von PHP RESTful API-Frameworks: http://davss.com/tech/php-rest-api-frameworks/

Sie könnten auch einen anderen Ansatz und Front-End-Modelle sowohl den Code Trennung zu tun verwenden und eine schöne Codestruktur haben. Dazu empfehle ich Backbone.js, die einige nette Schlüssel-Wert-Bindungen und Event-Handling für Ihren Front-End-Code bieten wird.

0

Verwenden Sie das MVC-Muster zu unseren Gunsten, schreiben Sie ein Modell mit 2 verschiedenen Ansichten. Sehen Sie, wie Sie hier ähnlich, etwas zu tun sind:

require("/api/internal.php"); 
$uri = "/story/todays-weather/"; 
$call = api::getStory($uri); 
$result = json_decode($call); 

diese Weise können Sie eine Trennung zwischen dem Frontend und dem API, aber der wichtige Teil ist die gleiche, die Code-Duplizierung zu reduzieren.

Schauen Sie die richtige Richtung zu mir.

0

Ich habe einen PHP-Webservice, der eine andere PHP-Seite füttert, im Grunde kann der Benutzer eine Taste online drücken und der Webservice hat viele Male wie nötig, macht es einfach zu warten, nicht sicher, ob das ist, was Sie brauchen, aber es funktioniert Gut für mich im Moment, hier ist ein Teil des Codes.

Mein Webservice gibt json oder xml zurück, ich habe dieses Stück im Internet gefunden und modifiziert, um es meinen Bedürfnissen anzupassen.

Und hier ist, wie ich dieses Ding von meiner PHP-Seite mit jquery aufrufen.

$.ajax({ 
         type: "GET", 
         url: "htto:\\server.com?action=whateveryourwebserviceaction&format=json", 
         dataType: "xml", 
         success: parseXml, 
         error: function (xml) { 
          alert(xml.status + ' ' + xml.statusText); 
          }}); 

Sie diese Funktion auf jedem Benutzereingabe aufrufen und aktualisieren Sie mit den Ergebnissen von den Webservice zur Verfügung gestellt, hoffentlich wird dies Ihnen helfen, weiterzumachen.