2016-07-20 4 views
0

Ich bin neu bei ZF und ich bin irgendwie mit etwas verwirrt: Ich möchte eine API (RESTful) mit OAuth2 für die Authentifizierung erstellen, und ich möchte Seiten, die hat Angular, um diese API zu verbrauchen. Wie ist es möglich, in ZF eine API zu erstellen und Seiten gleichzeitig zu bedienen? Was ist der beste Weg, um eine API in ZF zu erstellen? Ich habe ein wenig über Apiglilität gelesen, aber es scheint eine Menge Dateien und auch ein Admin-Panel zu erstellen und ich wollte das Projekt so sauber wie möglich halten. Wie macht man Versionen der API, wie V1, V2?ZF2 für RESTful API und Seiten in der gleichen Anwendung

Antwort

1

Ich habe mir vor ein paar Wochen dieselbe Frage gestellt. Ich brauchte eine einfach zu verwendende API-Implementierung für ein großes ZF2-Projekt. Nachdem ich verschiedene API "Frameworks/Module" ausprobiert hatte, benutzte ich Apigility. Apigility können Sie eine Menge Zeug tun, während Sie alles, was Sie brauchen, um es in Konfigurationsdateien einrichten.

Um einen besseren Überblick über die Config-Dateien zu behalten, habe ich sie einfach aufgeteilt, mit einer foo.endpoint.api.config.php, die nur Endpunkt-relevante Daten enthält.

Apigility ermöglicht auch die Integration für die Authentifizierung.

Wie für die Versionierung. Wenn ich mich nicht irre, bietet es auch ein Modul an, das Ihnen dabei hilft. Aber am Ende, wenn Sie V1, V2, usw. haben möchten, könnte dies über Routen innerhalb Ihrer Konfiguration erfolgen.

Hinweis: Sie müssen nicht das Admin-Panel von apigility verwenden. In der Tat habe ich es überhaupt nicht für mein Projekt verwendet und die Verwendung der Konfiguration direkt begünstigt.

+0

Ich kann nur das zweite - Apigility bietet viele erweiterte Funktionen out of the box und einige weitere Funktionen sind leicht aktiviert (Content Type Negotiation, API Versionierung, Autorisierung ...). Es erstellt ~ 5 Dateien pro API, was wahrscheinlich weniger ist als das, was Sie manuell beenden würden. Obwohl Sie sich über die letzten beteiligten Dateien Sorgen machen sollten. Der Admin-Bereich ist standardmäßig nur in der Entwicklung des Entwicklers aktiviert. Ich benutze es nur um eine API zu scaften und dann alles manuell im Code anzupassen. Die Lernphase ist jedoch ziemlich hoch und Sie sollten einige Zeit damit verbringen, den Code zu lesen, er ist ziemlich verständlich. – Fge

+0

Vielen Dank, es hat mir sehr geholfen, manchmal ist es schön andere Erfahrungen zu hören, um etwas zu bewegen. Ich war wirklich verwirrt darüber. @MethorZ Sie sagten, Sie haben nicht den Admin-Bereich verwendet, wie ist das? – davezom

+0

Ja ... Ich bin kein Fan von ausgefallenen UI's. Und ich fand das Admin-Panel für meinen Geschmack etwas schwer. Zu viel "Magie" passiert im Hintergrund (Erstellen von Dateien, Ordnern usw.) ... also habe ich es einfach nicht benutzt. Stattdessen habe ich meine eigene Struktur in Bezug auf Ordner und Konfigurationen erstellt. Irgendwie möchte ich die Kontrolle über die Sachen haben (: ) Schau dir das an, sieh dir den Code an, sollte ein guter Weg sein, um in das Thema einzusteigen und wie man es benutzt: https://github.com/n1te1337/apigility-blog- Beispiel – MethorZ