Wie kriege ich diese Restful api auf meinen apache webserver?

guterfrager5  27.04.2023, 16:03

Wie greifst du auf den Server zu? Also hast du einen SSH-Zugang/Konsole oder nur FTP um Dateien hochzuladen? Windows/Linux?

Fischkopf289 
Beitragsersteller
 27.04.2023, 16:16

Also ich benutze windows 11 und ich benutze apache webserver man kann ihn auch mit cmd verwalten und man kann ihm explore dateien rein schieben. er wird lokal von meinem pc gehoste

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Eine node.js Anwendung muss auch auf einem node-fähigen Webserver gestartet werden.

Apache kann nur PHP ausführen. (Es gibt zwar Versuche, node.js Server über PHP zu starten, aber empfehlenswert ist das nicht.)

Heroku oder Vercel bieten (in Maßen) kostenloses node.js Hosting an.

Wenn es nur um deinen lokalen Rechner und nicht um die Verfügbarkeit im Internet geht, kannst du einen node-Server einfach über die Command Line oder über einen entsprechenden Befehl in der package.json starten.

Woher ich das weiß:Berufserfahrung

Fischkopf289 
Beitragsersteller
 27.04.2023, 16:21

also die api muss für alle in meinem netzwerk verfügbar sein

gewinnowitsch  27.04.2023, 16:22
@Fischkopf289

Solange es nicht im Internet erreichbar sein muss, reicht es, wenn du die API lokal auf deinem PC startest.

Darfst halt dann den PC nicht ausschalten 😁

Fischkopf289 
Beitragsersteller
 27.04.2023, 16:23
@gewinnowitsch

ja aber wenn ich die api nicht auf einen webserver mache kann nur ich zugreifen und nicht die leute in meinem netzwerk

gewinnowitsch  27.04.2023, 16:27
@Fischkopf289

Nee, in deinem Netzwerk kann dann jeder mit der Netzwerk-internen IP deines Rechners und dem Port, den sich die App beim Starten selbst sucht, drauf zugreifen.

Beispiel: Du startest den Server mit

node backend/server.js

dann kommt in der Konsole sowas wie

Server listening on port 3000

Dann kann innerhalb deines Netzwerks jeder mit der IP deines Rechners auf die API zugreifen (z.B. 192.168.178.27, musst du in den Netzwerkeigenschaften auf deinem Rechner nachschauen).

Adresse wäre in dem Beispiel dann 192.168.178.27:3000

Wenn es ein reiner WebSpace ist, dann gar nicht, wenn der nicht dafür ausgelegt ist.

Wenn es ein Server ist, musst du mehr angaben machen, was das für ein Server ist


Fischkopf289 
Beitragsersteller
 27.04.2023, 16:21

es ist ein windows webserver der lokal auf meinem pc gehostet wird aber er ist auch mit diesem link zugänglich: http://meineip:8080
mit meineip meine ich natürlich meine ip

es ist die version 2.4 von apache webservern und es ist kein reiner webspace sondern ein server

Fischkopf289 
Beitragsersteller
 27.04.2023, 16:24
@FaTech

ja aber ich möchte node auf dem apache webserver installieren, den die api muss für alle leute in meinem netzwerk zugänglich sein und nicht nur für mich

FaTech  27.04.2023, 16:26
@Fischkopf289

Wie schon gesagt: Du hostest JavaScript mit NodeJS und nicht mit Apache. Ich kann mich jedes Mal wiederholen oder du akzeptierst es. Du brauchst ein JavaScript, welches hosten kann und dann startest du es mit NodeJS. Da du sagst, du hast bereits eine RestAPI und willst die nur noch hosten, gehe ich davon aus, dass sie funktioniert, sobald du sie mit Node startest

Fischkopf289 
Beitragsersteller
 27.04.2023, 16:27
@FaTech

Ja das tut sie aber wie kann ich es schaffen, das diese API für alle leute in meinem Netzwerk zugänglich ist?

FaTech  27.04.2023, 16:30
@Fischkopf289

Port freigeben in deiner lokalen Firewall. Das ist alles. Dann kann der andere mit dem Port drauf. Da dein Apache bereits auf 80 lauscht, solltest du dafür einen anderen wählen

Fischkopf289 
Beitragsersteller
 27.04.2023, 16:54
@FaTech

und wie will dann jemand auf die api zugreifen?

FaTech  27.04.2023, 16:54
@Fischkopf289

Website, App, Programm ... Weißt du überhaupt, was eine API / ReST API ist?

Fischkopf289 
Beitragsersteller
 28.04.2023, 08:41
@FaTech

Ja das weiss ich api ist die Schnittstelle zwischen zwei anwendungen und ich bin mir nicht mehr sicher aber rest api ist eine api die mit http anforderungen kommuniziert wenn ich mich nicht irre.