2015-03-11 2 views
12

Ich frage mich, ob es möglich ist, alle Endpunkte einer bestimmten API programmgesteuert zu erkennen.Gibt es eine Möglichkeit, alle Endpunkte einer ReST-API zu finden?

So zum Beispiel, wenn ich dieses URL mit einem Browser oder curl: https://api.twitter.com/1.1/

Ich könnte so etwas wie dies als JSON-Antwort erhalten:

{"TwitterAPI":{ 
    "version" : 1.1, 
    "GET" : { 
     "search/" : ["users", "trending"], 
     "users/" : ["id", "handle"] 
    } 
} 

Natürlich Twitter wählen könnten zu veröffentlichen oder Dieses Format darf nicht veröffentlicht werden. Nebenbei, gibt es Bibliotheken für Java oder Javascript, die die API-Routen, die Sie in Ihren Controllern erstellt haben, automatisch zuordnen und veröffentlichen?

+1

Es hängt davon ab, ob der Hersteller so etwas wie einen Suchdienst getan hat oder nicht. Wenn nicht, dann fürchte ich, dass Sie das nicht können. –

Antwort

12

Es gibt keine Möglichkeit der REST-Dienste programmatisch zu entdecken als sie keine Standard-Registrierungsdienst haben.

Abgesehen von einer wahnsinnigen Brute-Force-Suche gibt es keine Möglichkeit, die richtigen URLs zu finden (ganz zu schweigen von den richtigen Parametern). Die einzige Option ist die Dokumentation Ihrer API. Denn das ist die beste Wahl, die ich bisher gesehen habe, ist:

+0

Große Antwort danke für die Referenz! Die WADL-Antwort unten ist auch großartig, aber ich denke, diese Vorschläge sind ein bisschen nützlicher. – 4m1r

+0

Eigentlich werde ich das für ein paar unbeantwortet lassen und sehen, ob wir nicht noch ein paar nützliche Antworten bekommen können. – 4m1r

7

Einige RESTful-APIs veröffentlichen eine Web Application Description Language-Ressource (WADL - ausgesprochen wie der Weg, den Enten tun - kurz). JAX-RS oder zumindest Jersy-Webapps tun dies standardmäßig unter der Anwendungsstamm-URL /application.wadl. Es scheint nicht, dass Twitter-API einer von diesen ist. Viele REST-Puristen würden argumentieren, dass die API selbst beschreibend und selbst auffindbar sein sollte, einfach indem sie mit ihr interagieren und sehen, welche anderen Endpunkte sie Ihnen geben wird.

More about WADL from wikipedia...

Verwandte Themen