Zugriff auf kompilierte Routen in der Traube / Rack::Berg::Route
Ich versuche, erstellen Sie eine Liste aller Routen generiert, von meinem Unterklasse von Grape::API (MyApi).
Bekomme ich schließen, indem Sie:
MyApi.send(:route_set).instance_variable_get(:@routes)
gibt mir ein array von Rack::Berg::Route-Objekte.
Das einzige Attribut der Route-Objekt, das nützlich ist, ist :welche Voraussetzungen gibt einen Hash wie dieser:
:path_info => (?-mix:\\A\\/api\\/(?<version>v1)\\/token(?:\\.(?<format>[^\\/]+))?\\Z)", "k: request_method, v: (?-mix:\\AGET\\Z)
Wie Sie sehen können den Wert der hash ist eine regexp für das matching der route Weg. Ich kann auch mit :named_captures zu bekommen, alle Namen erfasst von den regexp:
{:path_info=>{:version=>0, :format=>1}, :request_method=>{}}
Letztlich das, was ich bin versucht zu tun ist erstellen Sie eine Liste aller Routen, die Sie erstellt Rebsorte::API Ihre vollständigen Pfad, etc. Es macht keinen Sinn für mich zu versuchen und zu dekonstruieren, die regexp in den Bedingungen. Gibt es eine andere Möglichkeit für den Zugriff auf/Erzeugung lesbarer Pfad für Rack::Berg::Route?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Finden Sie in diesem Beitrag rake routes mit Trauben
etwar erhalten Sie Routen mit:
UPDATE:
Artikel in Englisch: rake Routen-Befehl auf Trauben-gem
Nur um eine weitere variation zu den Antworten hier. Ich verwende die folgenden zwei rake-tasks.
Wenn Sie Trauben mit Schienen, schauen Sie sich die grape_on_rails_routes gem.
Können Sie laufen
rake grape:routes
und eine schön formatierte Liste alle aktuellen API ' s und deren details (url, Bezeichnung, version).Wie ich es gemacht habe:
Druckt Sie aus schön. Ich war futzing um mit dem abschneiden, aber Sie können Sie loswerden, dass, wenn Sie wollen, natürlich.
Können Sie nicht tun. Sobald die route erstellt wurde wird es etwas weniger inspectable. Anstatt das reverse engineering, siehe https://github.com/intridea/grape/pull/48/.
Ich würde mich mit einem der custom-Rechen-Aufgaben, wenn nicht auf Schienen läuft.
Wenn Sie in der Tat mit Schienen, werfen Sie einen Blick auf die Traube-Schienen-Strecken Juwel.
Gibt es Sie, ähnlich wie rake-task
rake routes_with_grape
.Ist es Mehrwert ist jedoch die html-Tabelle anzeigen in der rails-info-Abschnitt an
http://localhost:3000/rails/info/routes_with_grape