2016-07-12 7 views
0

Ich habe eine API erstellt und ich finde mich in einer Situation, in der ich die Modelle aus der API in meiner Webanwendung wiederverwenden möchte.Wiederverwendung von Modellen aus API in Webapp

[Abfrage] <> [Webapp] <> [Modelle] <> [api] <> [Modelle] <> [db]

In der Webapp I Modelle basierend auf der Ausgabe von der ich die Schaffung API. In der API erstelle ich Modelle basierend auf der Ausgabe der Datenbank. Beide Modelle sind identisch.

Gibt es einen Weg, wie ich das ohne Kopieren/Einfügen der Modelle richtig machen kann? Oder gibt es eine Möglichkeit, die gleichen Modelle zu vermeiden?

EDIT: Was ich meine ist, dass ich eine PHP-API und ein PHP-Frontend benutze. Beide Modelle in PHP-API und PHP-Frontend sind gleich.

+0

Jetzt verstehe ich die Frage nicht. Fragen Sie, ob Sie die PHP-Dateien in beiden (getrennten) Systemen wiederverwenden können? Ist das nicht einfach eine Bibliothek/ein Paket daraus zu machen und es auf beiden Seiten zu verwenden? – Erik

Antwort

0

Sie könnten innerhalb der API einen Service erstellen, der die Modelldaten als Antwort zurückgibt. Auf diese Weise können Sie einen einfachen Konverter erstellen, um die Modelle von PHP in eine Art JSON oder ein anderes Datenstrukturformat im Backend zu ändern und sie zu übertragen.

Sie haben nur eine Kopie der tatsächlichen Modelle und generieren automatisch die vom Frontend verwendeten.

Ein sehr einfaches Beispiel zu erarbeiten:

class Backend_Book { 
    public $title; 
    public $author;  
} 

class Backend_Recipe { 
    public $name; 
    public $ingredients; 
    public $steps; 
} 

auf Ihre api hinzufügen:

Anruf von Ihrem Frontend:

$http.get('your/api/domain').then(function(response) { 
    domain = response; 
}); 

Und dann ist die Idee, dass „Antwort "wird in etwa so aussehen:

response = [ 
    { 
    model: "Book", 
    properties: [ 
     "title", "author" 
    ] 
    }, 
    { 
    model: "Recipe", 
    properties: [ 
     "name", "ingredients", "steps" 
    ] 
    } 
]; 

Und jetzt haben Sie in Ihrem Frontend eine Kopie der Domäne, die vom Backend verwendet wird, die Sie nicht aktualisieren müssen. Offensichtlich ist dies ein einfaches Beispiel: Sie könnten den Domänenmodellen so viele Informationen hinzufügen, wie Sie benötigen, aber die Grundidee ist, dass die API den Benutzern der API eine eigene Domäne zur Verfügung stellt.

+0

Ich bin mir nicht sicher, was du meinst? Die API gibt eine JSON-Zeichenfolge mit den Daten zurück, und die Webanwendung konvertiert die JSON-Zeichenfolge in ein neues Modell. –

+0

Hilft das? – Erik

+0

Sorry nein, was du meinst ist eine PHP-API und ein JS-Frontend. Was ich meine ist eine PHP-API und ein PHP-Frontend. Die Modelle in meiner PHP-API sind die gleichen wie in meinem PHP-Frontend. –

Verwandte Themen