Sinatra und Grape API zusammen?

8

Ich habe gelesen und ich habe dieses Mikro-Framework namens Grape für Ruby gefunden. Ich benutze derzeit Sinatra , um das Webinterface zu verwalten, aber ich möchte auch Grape implementieren, um den API-Aspekt der App zu behandeln. Ich kann keine hilfreichen Vorschläge zu diesem Thema finden. Die Weintrauben-Dokumentation sagt: "Grape ist ein REST-ähnliches API-Mikroframework für Ruby. Es wurde entwickelt, um auf Rack zu laufen oder bestehende Webanwendungsframeworks wie Rails und Sinatra zu ergänzen, indem es ein einfaches DSL bereitstellt, um einfach RESTful-APIs zu entwickeln." Es klingt also so, als müsste es eine offizielle Art geben, beide zu kombinieren, oder? Diese App wird auch auf Heroku laufen.

    
Cristian Rivera 27.02.2013, 00:52
quelle

1 Antwort

19

Die gesuchten Ausdrücke sind:

  • mehrere Rack-Apps
  • Rack-Middleware
  • Mapping URLs Rack sinatra

So etwas. Grape, Sinatra und Rails sind alle Rack Apps. Dies bedeutet, dass Sie Ihre Grape-App, Ihre Sinatra-App und Ihre Rails-App erstellen können. Anschließend können Sie Rack verwenden, um sie auszuführen, da sie alle Rack-kompatibel sind, weil sie ein Schnittstelle .

Was das in der Praxis bedeutet, ist, dass Sie die Anwendungen schreiben und sie dann in eine rackup -Datei einfügen, um sie auszuführen. Ein kurzes Beispiel mit zwei Sinatra-Apps (aber es könnte sich um eine beliebige Anzahl von Rack-Apps handeln):

%Vor%

Wenn Sie das Twitter API Beispiel aus der Grape README hinzufügen möchten:

%Vor%

Hoffentlich ist das genug, um Sie zu beginnen. Es gibt viele Beispiele, wenn Sie wissen, wo Sie suchen müssen. Sie können auch andere Anwendungen in einer Sinatra-App ausführen, indem Sie use verwenden (siehe Ссылка ) und ich sehe diese Grape bietet auch das Schlüsselwort mount an. Es gibt viele Möglichkeiten, die zunächst etwas verwirrend sein können, aber probieren Sie sie einfach aus und sehen Sie, was sie tun und was Ihnen am besten gefällt. Ein großer Teil davon ist Präferenz , also habt keine Angst, mit dem zu gehen, was sich richtig anfühlt. Ruby ist für den Menschen mehr als der Computer:)

Edit: Eine Sinatra App mit einer Grape App "drinnen"

%Vor%

Ich glaube, es wird so sein.

    
iain 27.02.2013, 19:19
quelle