2017-07-10 6 views
3

Ich habe eine REST-API mit go (golang) entwickelt, und jetzt möchte ich mein Web-Frontend entwerfen. Ich weiß nicht, wie ich Frontend vom Backend trennen kann.Serverkonfiguration für REST-API und Web-Client

Ich denke, dass ich habe drei Möglichkeiten:

1- Run REST-API auf einem Server und die Frontend-Website auf einem anderen Server.

2- Führen Sie die REST-API und die Front-End-Website auf demselben Server, aber auf verschiedenen Ports aus. Führen Sie beispielsweise REST an Port 8080 und Frontend-Website an Port 80 aus.

3- Führen Sie beide auf demselben Server und demselben Port aus, verwenden Sie jedoch für jede URL unterschiedliche URL-Pfade (oder Subdomänen).

Da ich über dieses Zeug nicht weiß, bitte sagen Sie mir, welches ist die wahre oder beste Lösung. Oder gibt es eine andere Lösung? Ist es wichtig, wie groß meine Website ist?

+0

Sie können nicht 3, aber Sie können 1 und/oder 2 tun, aber es hängt von vielen spezifischen Dingen für Ihre Anwendung ab. – jmugz3

+0

@ jmugz3 können Sie tatsächlich 3 tun, aber Sie müssen Ihre Server mit NGINX konfrontieren. Der andere Weg, es zu tun, ist, es mit dem gleichen Go-Server zu konfrontieren und Subroutings basierend auf dem Request-Header durchzuführen. –

+0

@GurbakhshishSingh Kann ich 2 Go-Server mit einem NGINX laufen lassen? Was sind die Nachteile des zweiten Weges? –

Antwort

1

Entweder die erste oder die zweite Option wird für das Setup und die Entwicklung weitgehend identisch sein. Damit Sie nichts verlieren oder gewinnen, ist der einzige entscheidende Faktor Ihre Ressourcen und wie Sie Ihr Backend in Zukunft nutzen werden.

Wenn Sie derzeit nur eine Anwendung/Frontend auf der API aufrufen, ist die Verwendung derselben auf dem gleichen Server die bessere Option, da die Leistung im Vergleich zur zweiten Option marginal erhöht ist.

Da Sie jedoch ein RESTful-Design für Ihr Back-End gewählt haben, möchten Sie es möglicherweise in Zukunft für weitere Anwendungen wiederverwenden. Wenn Sie erwarten, dass die steigenden Aufrufe der API die Server-Ressourcen verbrauchen, Dann könnte Ihr Frontend darunter leiden, und dann sollten Sie das Backend auf einen anderen Server verlagern. Das gesamte Microservices, RESTful Backend Design "pattern" wurde entwickelt, um die Vorder- und Rückseite für eine bessere Skalierung zu entkoppeln, aber das ist vielleicht nicht für jeden notwendig, Sie müssen die Menge der Nutzung Ihrer Anwendung realistisch schätzen und denken schätzen wenn Sie die API möglicherweise anderweitig verwenden (oder wenn Sie die API für andere anbieten möchten).

Am Ende, wenn die erste und zweite Option eine ähnliche Höhe der Investition für Sie im Moment, gehen Sie für die erste, wenn nicht, nur beide Vorder-und Rückseite auf dem gleichen Server und wenn in der Zukunft Sie wissen, dass Sie skalieren müssen, Sie können die API einfach auf einen anderen Server/Server verlagern.