2017-03-07 1 views
3

Nehmen wir an, ich entwickle eine Anwendung ähnlich wie Twitter. Ich kann das Profil eines Benutzers sehen tom wenn ich https://twitter.com/tom besuchen, aber es gibt mehrere Anwendung reserviert Endpunkte wie /login, /logout, /settings, /about usw.Wie filtere ich Benutzernamen, die API-Endpunkte programmatisch entsprechen?

Twitter tatsächlich sagt Ihnen, den Grund, warum Sie nicht einen bestimmten Benutzernamen annehmen: This is the message you see when trying to take another user's username Und ich nehme an, die folgende Meldung an reserviert Endpunkte gilt: enter image description here

Meine Frage ist: wie funktioniert Twitter eine Liste der reservierten Endpunkte halten für Neuregistrierungen Ausfiltern? Es scheint, dass es eine Prüfung gibt, die den Benutzernamen mit einer Liste registrierter Benutzer vergleicht, und eine zweite Prüfung, die nach reservierten Schlüsselwörtern sucht.

Eine Tabelle mit diesen Schlüsselwörtern scheint wie eine offensichtliche Antwort, aber ich finde, man könnte leicht vergessen, nach jeder Erstellung einer Top-Level (reservierten) Seite zu aktualisieren.

+2

Nizza Beispiel Benutzername. – ApolloSoftware

Antwort

1

Sie werden keine Antwort bekommen, wie Twitter es tut, denn das würde fast sicher jemanden zwingen, eine NDA zu brechen. Ich würde erwarten, dass es eine Datenbanktabelle ist, aber ich habe keine Insiderinformationen.

Die bevorzugte Vorgehensweise besteht darin, einen Sammelendpunkt nicht so zu überladen. Besser wäre

/users/tom 
/login 
/logout 
... 

Dann löst Ihre URI-Struktur das Problem für Sie.

+0

Ganz einverstanden, daher Twitter im Titel nicht zu erwähnen. Aber ich würde gerne wissen, wie man das pragmatisch angeht. StackOverflow verwendet den '/ users/tom' Ansatz :) – goncalotomas

Verwandte Themen