Ich habe neulich mein Debüt in Ruby on Rails bei der Arbeit gegeben. Als ich über Rails sprach, hatte ich den großen Eindruck, dass ein Webdienst mit Bildschirmanzeige erstellt wurde, aber bei der Arbeit wurde die API mit Rails erstellt. Hier werde ich also versuchen, sowohl einen Webdienst als auch eine API zu erstellen.
Windows 10 Home 64-Bit
Rails arbeitet mit einem Mechanismus, der auf dem MVC-Modell basiert. MVC kommt von den Akronymen "Model", "View" und "Controller" und wird häufig bei der Entwicklung von Anwendungen mit Rails verwendet.
Erstellen Sie einen Webbildschirm, auf dem die für Anfänger übliche "Hallo Welt" angezeigt wird.
Führen Sie den folgenden Befehl aus, um ein neues Projekt für den Webdienst zu erstellen.
Befehlszeile
Schienen neuer Anwendungsname
Die Ordnerstruktur unter dem Anwendungsordner befindet sich in Rails Documents. Sie können dies unter "Was ist Ruby on Rails> Ordnerstruktur> Ordnerliste" überprüfen.
Führen Sie den folgenden Befehl aus, um den Controller zu erstellen. Wechseln Sie beim Erstellen eines Controllers in den zuvor erstellten Anwendungsordner und erstellen Sie ihn anschließend.
Befehlszeile
CD-Anwendungsordner
Schienen erzeugen den Controller-Controller-Namen
* Hier lautet der Controller-Name "hello_world".
Der Controller "hello_world_controller.rb" wurde im Ordner "app / controller" erstellt. Der Quellcode zum Zeitpunkt der Generierung lautet wie folgt.
hello_world_controller.rb
class HelloWorldController < ApplicationController
end
Die in der Steuerung definierte Methode wird als Aktion bezeichnet. Bearbeiten Sie die zuvor erstellte Datei "hello_world_controller.rb" und versuchen Sie, die Aktion "index" zu definieren.
hello_world_controller.rb
class HelloWorldController < ApplicationController
def index
end
end
Hier wurden der Controller und die Aktion separat erstellt, es ist jedoch auch möglich, sie beim Erstellen des Controllers alle gleichzeitig zu erstellen. Führen Sie den folgenden Befehl aus, um alle auf einmal zu erstellen.
Befehlszeile
Schienen erzeugen Controller Controller-Name Aktionsname 1 Aktionsname 2...
#Beispiel
rails generate controller hoge index create
Fügen Sie im Ordner "app / views / hello_world" die Ansicht "index.html.erb" hinzu, die der Indexaktion entspricht.
Da davon ausgegangen wird, dass diesmal "Hello World" angezeigt wird, beschreiben Sie Folgendes in "index.html.erb".
html:index.html.erb
<h1>Hello World</h1>
Empfangen Sie eine Anfrage vom Browser und fügen Sie eine Einstellung hinzu, die an den Controller verteilt werden soll. Die zu ändernde Datei lautet "route.rb" im Ordner "config".
routes.rb
Rails.application.routes.draw do
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
get '/helloworld', to: 'hello_world#index'
end
Sie können das Format unter "Routendefinition" in Rails-Dokument überprüfen. Dieses Mal habe ich die get-Methode beschrieben, die der GET-Anforderung entspricht.
Führen Sie den folgenden Befehl aus, um den Rails-Server zu starten.
Befehlszeile
rails s
Gehen Sie zu http: // localhost: 3000 / helloworld.
Erstellen Sie eine API, die "Hello World" im JSON-Format zurückgibt. Der allgemeine Ablauf ist der gleiche wie für Webdienste.
Führen Sie den folgenden Befehl aus, um ein neues Projekt für die API zu erstellen.
Fügen Sie einem normalen Befehl --api
hinzu und erstellen Sie ein Projekt im API-Modus.
Befehlszeile
Schienen neuer Anwendungsname--api
Der Ausführungsbefehl ist der gleiche wie der Webdienst. Dieses Mal erstellen wir einen Controller und eine Aktion gleichzeitig. Der Controller-Name und der Aktionsname sind dieselben wie für den Webdienst. Hier können Sie die Auswirkungen des API-Modus beim Erstellen eines Projekts sehen. Wenn Sie einen Controller normal erstellen, werden gleichzeitig auch Dateien erstellt, die sich auf Ansichten wie Ansicht, Hilfsprogramm und Asset beziehen. Diese Dateien werden jedoch nicht erstellt, da für die API keine Ansichten erforderlich sind.
Fügen Sie einen Prozess hinzu, um "Hello World" im JSON-Format zurückzugeben.
hello_world_controller.rb
class HelloWorldController < ApplicationController
def index
render json: { data: "Hello World" }
end
end
Aufgrund der Stapelerstellung von Controllern und Aktionen werden Routing-Einstellungen automatisch hinzugefügt, aber wir ändern sie.
Vorher ändern_routes.rb
Rails.application.routes.draw do
get 'hello_world/index'
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
end
Nach der veränderung_routes.rb
Rails.application.routes.draw do
get '/helloworld', to: 'hello_world#index'
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
end
Führen Sie den folgenden Befehl aus, um den Rails-Server zu starten.
Befehlszeile
rails s -p 3001
Führen Sie den folgenden Befehl aus und bestätigen Sie, dass JSON zurückgegeben wird.
Befehlszeile
curl --request GET --url http://localhost:3001/helloworld
"Hello World" ist wieder sicher in JSON!
Recommended Posts