APIs testen



  • Ich beschäftige mich gerade mit dem Thema APIs und habe mir als Projekt eine kleine Anwendung bestehend aus einer REST-API, die auf eine Datenbank zugreift und einem Android Frontend vorgenommen.

    Nun funktioniert bei mir lokal alles ganz gut, aber irgendwie möchte ich meine API auch mal irgendwo deployen und wirklich remote testen.

    Leider habe ich wenig bis keine Ahnung, welche Optionen für mich sinnvoll sind. Es fängt schon dabei an, dass ich gar nicht abschätzen kann, welche Hardwareanforderungen vorliegen.

    Ich weiß, dass Cloud-Anbieters (AWS und Co) die Möglichkeit zum Deployen bieten. Ich bin mir nicht sicher, ob nicht ein normaler Webhoster (Strato oder so) auch funktionieren würde.
    Da die Applikation ein reines Testprojekt ist, möchte ich auch nicht viel (am besten nichts) ausgeben.

    Welche Tipps habt ihr für mich?


  • Mod

    Prinzipiell kann das jeder Rechner, der aus dem Internet erreichbar ist. Wenn du ein typisches Heimnetz hast (Irgendein Router mit Internetanbindung und ein lokales Netzwerk daran), dann kann das sogar dein Heimrechner. Dazu musst du dir einen Port von deinem Router an den Port des Heimrechners forwarden, auf dem deine Anwendung lauscht. Dann sieht das vom Internet so aus als würde deine Anwendung auf dem Port des Routers laufen, den du da weiterleitest. Ein Problem dabei ist dann aber, dass bei typischen Internetanbietern die Internetadresse deines Routers dynamisch ist, d.h. das kann jeden Tag eine andere sein, und du musst selber rausfinden, welche das gerade ist (z.B. indem du es einfach googelst). Nicht genau zu wissen, wie man sie erreichen kann, ist natürlich denkbar ungünstig für eine richtige Internetanwendung, aber zum reinen privaten Testen ist das ausreichend.

    Es gibt natürlich auch jede Menge andere Heimnetzkonfigurationen, normalerweise sollte es immer irgendwie machbar sein, das hinzubiegen. Das obige ist sogar ein eher komplizierter Fall. Wenn du beispielsweise an einer Universität beschäftigt bist, hängen deren Rechner meist direkt im Internet (weil Universitäten recht große IP-Pools haben) und du könntest auf so einen Rechner direkt loslegen.

    Ein Webhoster kann auch das, was du willst. Was der bietet ist halt Stabilität. Sowohl von der Plattform her (d.h. der Rechner mit deiner Anwendung läuft dann 24/7 und nicht nur, wenn du deinen Heimrechner angeschaltet hast) als auch von der Verbindung her (d.h. deine Anwendung ist dann immer unter einer bekannten Adresse erreichbar). Aber das kostet dafür auch Geld. Nur zum Herumspielen brauchst du das nicht, aber sobald jemand anderes halbwegs zuverlässig Zugriff auf deine Schnittstelle haben soll, wäre das schon gut zu haben.

    Die Cloud ist würde dir quasi das gleiche bieten wie der Webhoster, aber (extrem!) hochskalierungsfähig. Das brauchst du garantiert nicht für Testzwecke. Und so lange du fragen musst, was das überhaupt genau ist, brauchst du es garantiert auch nicht.



  • Sehr schön von @SeppJ auf dem Niveau der Fragestellung erklärt! 🙂

    Noch etwas zu der wechselnden eigenen IP ... manche Anwendungen bzw. Anwendungstechnologien können mit IPs nicht umgehen und möchten stattdessen einen Domainnamen/URL haben ... (obwohl eine IP eigentlich auch eine IP ist.) Das kann man durch dyndns-Services umgehen ... eine Übersicht gibt es zum Beispiel hier https://www.netzwelt.de/dns/165935-dyndns-5-kostenlose-anbieter-ueberblick.html , ggf. kann der entsprechende Service auch zum Beispiel direkt in der Fritz!Box eingetragen werden.

    Zum "Testen" genügt das. Falls deine Anwendung mal die kritische Masse erreicht, also zum Beispiel >100k Benutzer, dann hast du wahrscheinlich inzwischen andere Probleme als nur die Skalierung ...

    Mehr lässt sich erst einmal nicht dazu schreiben, ohne die Anwendung genauer zu kennen.


Anmelden zum Antworten