• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

RESTful Api Konfiguration

Bourbon

Mitglied
Hallo Leute,

ich würde gerne meine Seite so einrichten, dass sie mit Endpoints klar kommt (CRUD).
Leider finde ich bisher kein Tutorial, in dem die Konfiguration mal durchgenommen wird.
Da ich mir aber auch kaum vorstellen kann, dass es dafür keins gibt:
ergo suche ich entweder falsch oder erkenne ein solches Tutorial nicht, wenn ich es lese :)

Im Endeffekt dient das ganze dazu, das hier umsetzen zu können:
http://www.sitepoint.com/creating-crud-app-minutes-angulars-resource/

Ich nutze:
Mac OS X Yosemite
Ionic Framework
MAMP (@scbawik : jetzt nicht schimpfen, das Tutorial von Chris Mallison steht auf der ToDo-Liste :) )
 
Werbung:
Okay das werde ich mir wohl doch mal holen. Werden in dem Buch auch PHP und MySQL bzw. Datenbank-Abfrage behandelt?

Gibt's es aber vielleicht trotzdem ein kleines Tutorial, welches diesen Schwerpunkt behandelt?


Gesendet von iPhone mit Tapatalk
 
Werbung:
Ich weiß nun ja nicht was man da großartig einstellen muss, aber musst du nicht einfach nur anhand der Post oder Get Daten, die du an eine URL schickst, verarbeiten?

So wie auf dem Bild auf dem sitepoint Blogbeitrag

es gab denn ja noch als form method delete und put. Aber seit Html5 werden diese nicht mehr unterstützt.
 
Bei dem Thema bin ich ganz neu drin und irgendwie steig ich da noch nicht ganz dahinter.
Jedenfalls sahen die Pfade für Abfragen bei mir bspw. immer so aus:
Code:
localhost/soundso/www/php/load_Pizzas.php
und nicht so
Code:
localhost/soundso/www/pizzas/
localhost/soundso/www/pizzas/id/3
Mir ist es jetzt gerade schleierhaft, woher der Server wissen soll, dass er bspw. bei
Code:
localhost/soundso/www/pizzas/id/3
über die Datei
Code:
load_Pizza_by_ID.php
die Einträge laden soll und nicht über
Code:
load_PIzza.php
.
 
Bei dem Thema bin ich ganz neu drin und irgendwie steig ich da noch nicht ganz dahinter.
Jedenfalls sahen die Pfade für Abfragen bei mir bspw. immer so aus:
Code:
localhost/soundso/www/php/load_Pizzas.php
und nicht so
Code:
localhost/soundso/www/pizzas/
localhost/soundso/www/pizzas/id/3
Mir ist es jetzt gerade schleierhaft, woher der Server wissen soll, dass er bspw. bei
Code:
localhost/soundso/www/pizzas/id/3
über die Datei
Code:
load_Pizza_by_ID.php
die Einträge laden soll und nicht über
Code:
load_PIzza.php
.

Hatte dir doch schon geschrieben dass du dafür ein Routing benötigst. Google suche "php routing" zb: http://blogs.shephertz.com/2014/05/21/how-to-implement-url-routing-in-php/

Frameworks wie Symfony2 nehmen dir diese Arbeit ab.
 
Werbung:
Achso, du musst natürlich die URL erst aufhübschen wie ich das immer sage :D
das machst du in der .htaccess Datei.

ICh bin in der Sache auch ein noob, vielleicht kann jemand anderer noch 1-2 Zeilen dazu schreiben.

folgendes habe ich in der .htaccess stehen. Hatte ich mir auch mal aus einem Tutorial rauskopiert

Code:
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

wenn ich nun in der url localhost/kunden/login eingebe, habe ich /kunden/login im parameter url stehen.
Und diesen kann man denn mit aufsplitten, was ein sogenannter Router denn macht, also eine Klasse die dann sagt was aufgerufen werden soll.

Musst du mal im Internet nach "PHP Routing tutorial" suchen
Hier ist sonst noch ein Link

EDIT: Jetzt war scbawik schneller :D
Aber anstelle von Symfony 2 oder so würde ich mir das Slim Framwork anschauen.
 
Frameworks wie Symfony2 nehmen dir diese Arbeit ab.
Sieht ja wohl ganz danach aus, dass nun die Zeit ist, mit Symfony anzufangen :) Vielleicht lässt es sich auch einfacher umsetzen, aber ich denke Symfony wäre der sicherer Weg.

Slim ... ja welches ist nun besser... oder fragen wir anders: welches ist schneller erlernbar? :)
 
Schneller erlernbar ist schwer zu sagen, wenn du dich gut durch quellcode lesen kannst ist beides recht schnell zu erlernen.

Aber ich tippe auf Slim, ich habe damit persönlich noch nichts umgesetzt. Nur paar Anregungen geholt weil ich mal selbst eine Router Klasse schreiben wollte. Aber wenn du Zeit hast, würde ich dir Symfony ans Herz legen. Es hängt nun auch etwas von deinem Projektstatus an, willst du diese API nur nachträglich einbauen würde ich nur nach einer Router Klasse schauen und damit denn die API bauen. Wenn deine Website aber noch gar nicht existiert und du noch in der Planungsphase bist, dann sollte man wirklich mal überlegen ob
man nicht Slim Framwork, Symfony 2, Zend Framework, CakePHP oder was es noch so alles gibt verwenden will.

Schaden tut sowas nie, sich in ein Framework einzulesen.

EDIT:
Wenn du nur einen Router brauchst, dann hätte ich hier noch was
klein.php
 
Werbung:
Okay vielleicht sollte ich doch erstmal klein anfangen und das Routing selbst erstellen (zum Verständnis), bevor ich irgendwelche Frameworks anfasse. Es soll ja auch nichts komplexes werden, nur ganz einfach Abfragen.
 
Das musst du für dich selbst entscheiden. Wenn du fragen hast bzw. nicht weiter kommst einfach im PHP Bereich fragen.
 
Backend und Frontend sollten einzelne Komponenten sein, die über eine REST API miteinander kommunizieren und sich auch wieder entkoppeln und neu verbinden lassen. Das eingangs zitierte Buch zeigt, wie das mit Node, Express und Mongo funktioniert, ganz ohne .htaccess Gedöhns, das außerhalb des Frameworks läuft. Und wenn man schon Node einbindet, stellt sich die Frage, ob Apache oder Nginx überhaupt benötigt werden. Des Weiteren braucht man kein PHP im Frontend, wenn Inhalte ohnehin per AJAX geladen werden sollen, und das macht dann ein unterliegendes ZF / Simfonie mit aufgesetztem jQuery Ajax obsolet. Hinzu kommt, dass wenn man als Einsteiger vor der Wahl steht, sich der Technology Stack für eine MEAN Application schneller erlernen lässt.

Ergänzend dazu:
Heroku zum hosten von Node Apps. Funktioniert ähnlich wie AWS, ist aber bei kleinen Projekten kostenlos.
https://www.heroku.com

MongoLab. Cloud Service, für Databases bis 500 MB kostenlos.
https://mongolab.com

Deployd. Damit lässt sich schnell eine API zusammenstellen. Auch kostenlos.
http://deployd.com
 
Werbung:
Na toll, jetzt weiß ich gar nicht mehr, was ich machen soll :)

Also das Buch hole ich mir auf alle Fälle, aber am meisten würde mir gerade eine sehr einfach, aber funktionelle Lösung mit PHP und MySQL gefallen :) sonst brauche ich noch Jahre. Verbessern/neu aufsetzen kann man es ja dann immer noch :) ich melde mich später nochmal hierzu


Gesendet von iPhone mit Tapatalk
 
Deine Entscheidung. Aber es wäre schneller und einfacher, dich in MEAN einzuarbeiten, als vorhandene PHP/MySQL-Kenntnisse zu erweitern, um ein professionelles Backend bauen zu können. Mit Node einen Server aufzusetzen und eine Route zu legen, braucht nur wenige Zeilen Code.

Code:
// localhost:3000/pizza
var express = require('express');
var app = express();
app.use('/pizza', function(req, res) {
    res.send('Pizza World');
});
app.listen(3000);
 
Werbung:
Die stehen für das EN in MEAN. Express ist ein Routing Framework für Node und das Backend-seitige Pendant zum $routeProvider von Angular.
 
Okay das sieht schon sehr kurz und knapp aus.
Sicherlich gehen damit auch solche Dinge wie die Gruppen lokal auf dem Handy zu speichern, damit man es nicht immer laden muss sowie eine Wiederanmeldung über einen Cookie/Token.
Und wie verhält es sich mit MongoDB? Ich brauche eine Datenbank, in der die Einträge immer gespeichert sind, so dass ein Nutzer, auch wenn er sich erst ein Jahr später anmeldet, alles sieht, was in der Gruppe geschah.

Dennoch würde ich das ganze auch gerne mal mit dem PHP Routing hinbekommen :) Vorerst auch ohne zusätzliche Frameworks.
 
Zuletzt bearbeitet:
Zurück
Oben