Web API Cache/Proxy und Client/Session

Gast #7145220
Lesenswert?

Hi Leute,

entschuldigt die konfuse Fragestellung! Ich kann's irgendwie nicht 
exakter Formulieren - einfach nachfragen bitte.

Ich möchte eine winzige Internet-"App" bauen.
Wie bei vielen:

1. Nutzer lädt Seite vom Server
2. Nutzer gibt Daten ein
3. Daten werden beim Server angefragt
4. Server holt die Daten aus dem Cache oder von der externen API
5. Server sendet Daten an Nutzer

Die Fragen betreffen hauptsächlich die Client/Server-Aufteilung.

A) Damit Clients nicht indirekt die externe API ausnutzen, muss es 
mindestens ein Rate-Limit geben.
B) Sofern die Daten nicht mit der Seite, sondern per eigener API 
ausgeliefert werden, sollte der Zugang nur von der Seite erlaubt sein.

Bis auf die "Daten" könnte die "Seite" statisch ausgeliefert werden.
Das bedingt eine eigene API. Wie können dann A) und B) realisiert 
werden?

In beiden Fällen muss der Client identifiziert werden (Session/Cookie).
Das würde im Fall der eigenen (separaten) API nicht mehr stateless 
(REST) gehen, oder? Und statisch ausliefern geht dann wohl auch nicht.

Dann klingt es so, als sei es einfacher, die Seite "server-side" mit den 
Daten zu versehen. Oder..?
(Firma: egal) #7145319
Lesenswert?

OT schrieb:
> Dann klingt es so, als sei es einfacher, die Seite "server-side" mit den
> Daten zu versehen. Oder..?

Das ist eigentlich der "übliche" Weg. Z.B. mit PHP den html-code 
"zusammenbasteln" (anhand der im Request übergebenen Parameter) der dann 
an den Client zum Anzeigen ausgeliefert wird.

Das auf der Client-Seite zu machen, macht man eher wenn die angezeigten 
Daten dynamisch geändert werden sollen während die Seite "offen" ist und 
nicht neu vom Server geladen wird - Stichwort z.B. AJAX

- https://de.wikipedia.org/wiki/Ajax_(Programmierung)
Gast #7145410
Lesenswert?

OK, lassen wir das mit der externen API mal weg.
Zur Anschauung sei die "Anwendung" das Abfragen der Buchstaben im 
Alphabet nach Index, also 0->'A' etc.

Zwei beispielhafte requests:

Server-side (ganze Seite mit Daten erzeugt)

    POST /alphabet.php ...
    ...
    index=0

Hier kann über die (sichere) Session die Abfrage erlaubt werden.


API (nur Daten, per Ajax in html Seite geholt)

    GET api?index=0 ...

Wenn auch für die API Sessions möglich sind, sollte das Rate-Limiting 
kein Problem sein.

B) ist nur lösbar, wenn die Seite gleich mit einem Schlüssel (oder der 
Session) ausgeliefert wird, also server-side.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren