Je viens de faire mes débuts dans Ruby on Rails au travail l'autre jour. Quand il s'agit de Rails, j'ai eu l'impression qu'un service Web avec affichage à l'écran a été créé, mais au travail, l'API a été créée avec Rails. Donc, ici, je vais essayer à la fois de créer un service Web et une API.
Windows 10 Famille 64 bits
Rails fonctionne avec un mécanisme basé sur le modèle MVC. MVC provient des acronymes «Model», «View» et «Controller», respectivement, et est souvent utilisé lors du développement d'applications avec Rails.
Créez un écran Web qui affiche le "Hello World" qui est habituel pour les débutants.
Exécutez la commande suivante pour créer un nouveau projet pour le service Web.
Ligne de commande
rails nouveau nom d'application
La structure des dossiers sous le dossier de l'application se trouve dans Rails Document. Vous pouvez le vérifier dans "Qu'est-ce que Ruby on Rails> Structure des dossiers> Liste des dossiers".
Exécutez la commande suivante pour créer le contrôleur. Lors de la création d'un contrôleur, accédez au dossier d'application créé précédemment, puis créez-le.
Ligne de commande
dossier d'application cd
les rails génèrent le nom du contrôleur de contrôleur
* Ici, le nom du contrôleur est "hello_world".
Le contrôleur "hello_world_controller.rb" a été créé dans le dossier "app / controllers". Le code source au moment de la génération est le suivant.
hello_world_controller.rb
class HelloWorldController < ApplicationController
end
La méthode définie dans le contrôleur est appelée une action. Modifiez le "hello_world_controller.rb" créé précédemment et essayez de définir l'action "index".
hello_world_controller.rb
class HelloWorldController < ApplicationController
def index
end
end
Ici, le contrôleur et l'action ont été créés séparément, mais il est également possible de les créer tous en même temps lors de la création du contrôleur. Pour tout créer en même temps, exécutez la commande suivante.
Ligne de commande
les rails génèrent le contrôleur Nom du contrôleur Nom de l'action 1 Nom de l'action 2...
#Exemple
rails generate controller hoge index create
Dans le dossier "app / views / hello_world", ajoutez la vue "index.html.erb" correspondant à l'action d'index.
Puisqu'il est supposé que "Hello World" sera affiché cette fois, décrivez comme suit dans "index.html.erb".
html:index.html.erb
<h1>Hello World</h1>
Recevez une demande du navigateur et ajoutez un paramètre à distribuer au contrôleur. Le fichier à modifier est "routes.rb" dans le dossier "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
Vous pouvez vérifier le format dans "Route Definition" dans Rails Document. Cette fois, j'ai décrit la méthode get correspondant à la requête GET.
Exécutez la commande suivante pour démarrer le serveur Rails.
Ligne de commande
rails s
Accédez à http: // localhost: 3000 / helloworld.
Créez une API qui renvoie «Hello World» au format JSON. Le flux général est le même que pour les services Web.
Exécutez la commande suivante pour créer un nouveau projet API.
Ajoutez --api
à une commande normale et créez un projet en mode API.
Ligne de commande
rails nouveau nom d'application--api
La commande d'exécution est la même que le service Web. Cette fois, créons un contrôleur et une action à la fois. Le nom du contrôleur et le nom de l'action sont les mêmes que pour le service Web. Vous pouvez voir l'effet du mode API lors de la création d'un projet ici. Lorsque vous créez normalement un contrôleur, les fichiers liés aux vues telles que la vue, l'assistant et l'actif sont également créés en même temps, mais ces fichiers ne sont pas créés car l'API ne nécessite pas de vues.
Ajoutez un processus pour renvoyer "Hello World" au format JSON.
hello_world_controller.rb
class HelloWorldController < ApplicationController
def index
render json: { data: "Hello World" }
end
end
En raison de la création par lots de contrôleurs et d'actions, les paramètres de routage sont automatiquement ajoutés, mais modifions-les.
Changer avant_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
Après le changement_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
Exécutez la commande suivante pour démarrer le serveur Rails.
Ligne de commande
rails s -p 3001
Exécutez la commande suivante et confirmez que JSON est renvoyé.
Ligne de commande
curl --request GET --url http://localhost:3001/helloworld
"Hello World" est de retour en toute sécurité en JSON!
Recommended Posts