Comprendre REST améliorera les perspectives du didacticiel Ruby on Rails

Ce que vous pouvez obtenir en lisant cet article

Au lieu de faire le tutoriel "à la volée", vous pourrez continuer le tutoriel avec un rayon de lumière (peut-être)

Les lecteurs présumés n'ont pas beaucoup de connaissances préalables sur le WEB Les personnes qui sont au milieu ou juste après le didacticiel Rails (Je suis)

Qu'est-ce que REST?

En gros, c'est le concept de design du Web. Rails est également conçu selon l'idée de REST

En fait, le tutoriel se trouve dans la colonne 2.2 (dans le cas de la 4ème édition) du chapitre 2 du tutoriel Rails. Il y a un aperçu de REST qui semble nécessaire pour lire Je pense qu'il y a des gens qui jettent un coup d'oeil rapide et passent à autre chose sans bien le savoir. J'ai avancé

Mais,

Le concept de REST circule dans le tutoriel (ou même l'essence) Il vaut mieux le saisir tôt pendant le tutoriel Je pense qu'il est difficile de se perdre parce que vous pouvez voir la structure cohérente et ce que pense l'auteur.

Le concept de REST est si abstrait que vous n'avez pas à tout comprendre tout de suite. Si vous comprenez, non seulement à l'intérieur du didacticiel mais aussi en dehors du didacticiel Il est avantageux de pouvoir voir un peu clairement le monde du web

Ci-dessous, je vais vous expliquer en fonction du niveau que j'ai ressenti

[Comprendre la relation entre les requêtes HTTP de niveau 1 et les opérations CRUD](# Comprendre la relation entre les requêtes HTTP de niveau 1 et les opérations crud) [Comprendre le contenu acheminé par les ressources de niveau 2](#Comprendre le contenu acheminé par les ressources de niveau 2) [Comprendre le groupe d'action mystérieux généré par l'échafaudage de niveau 3](#Comprendre le groupe d'action mystérieux généré par l'échafaudage de niveau 3) [Comprendre le niveau 4 REST lui-même](#Comprendre le niveau 4 REST lui-même)

Niveau 1 Comprendre la relation entre les requêtes HTTP et les opérations CRUD

La requête HTTP est envoyée lorsque l'utilisateur utilise le navigateur Dans le didacticiel Rails, écrivez la partie qui exploite la base de données en fonction de la demande La plupart du temps, j'écris la procédure de fonctionnement du navigateur dans un test et je vérifie le fonctionnement.

Si vous comprenez bien cela, je pense que le contenu du tutoriel sera en quelque sorte géré pour le moment

・ Quatre des huit requêtes HTTP qui sont souvent utilisées

Requête HTTP En traitement
GET Avoir
POST enregistrement
PUT mise à jour
DELETE Effacer

・ Opérations requises pour la base de données

Fonctionnement CRUD En traitement
READ Avoir
CREATE enregistrement
UPDATE mise à jour
DELETE Effacer

・ Chaque correspondance

Requête HTTP Fonctionnement CRUD En traitement
GET READ Avoir
POST CREATE enregistrement
PUT UPDATE mise à jour
DELETE DELETE Effacer

Comprendre ce qui est acheminé dans les ressources de niveau 2

Q: Écrivez simplement "resources: users" dans "routes.rb" Pourquoi me conduisez-vous de différentes manières?

routes.rb


Rails.application.routes.draw do
  resources :users
end

R: Rails est égoïste par défaut lorsqu'il est déclaré comme ressource Soyez prudent en fonction de GET, POST, PUT et DELETE Il associe l'URL à l'action du contrôleur et génère les éléments suivants

URL action Requête HTTP Route nommée Utilisation
/users index GET users_path Afficher l'écran de la liste des utilisateurs
/users/:id show GET user_path(user) Afficher l'écran d'un utilisateur spécifique
/users/new new GET new_user_path Afficher l'écran d'enregistrement d'un nouvel utilisateur
/users/:id/edit edit GET edit_user_path(user) Afficher l'écran de modification de l'utilisateur
/users create POST users_path Action d'enregistrement de l'utilisateur
/users/:id update PATCH/PUT user_path(user) Action de mise à jour de l'utilisateur
/users/:id destroy DELETE user_path(user) Action de suppression de l'utilisateur

Comprendre le mystérieux groupe d'action généré par l'échafaudage de niveau 3

Si vous utilisez l'échafaudage, les 7 actions suivantes seront automatiquement générées dans le contrôleur des utilisateurs.

def index def show def new def edit def create def update def destroy

Au début, je pense que vous ne saviez pas ce que c'était parce que c'était fait de différentes manières. À ce stade, je pense que vous pouvez voir la relation entre eux. Il semble que ces sept modèles soient des modèles Rails. (Vous pouvez supprimer les actions inutiles Vous pouvez ajouter vos propres actions si nécessaire)

L'explication sera mélangée Si vous écrivez «ressources: nom du contrôleur» dans «routes.rb», les 7 actions seront acheminées. Comme dans le chapitre 13 du tutoriel, vous ne pouvez générer que le routage requis avec l'option: only.

routes.rb


Rails.application.routes.draw do
  resources :microposts, only: [:create, :destroy]
end

Niveau 4 Compréhension de REST lui-même

Qu'est-ce que REST après tout?

Le principe de conception original de REST semble être les quatre suivants

  • Doit être publié avec un URI adressable
  • L'interface (utilisation de la méthode HTTP) est unifiée
  • Être apatride
  • Le résultat du traitement est notifié par le code d'état HTTP

Source: Introduction aux connaissances de base REST

Le didacticiel Rails nécessite l'un des principes REST ci-dessus

seulement. (Cet article se concentre également sur cela) Veuillez vous référer au lien source pour d'autres détails.

Cependant, si vous en savez beaucoup, les API de divers services sont également conçues avec REST à l'esprit. Comme il y en a beaucoup, il sera facile de se connecter avec d'autres services RESTful.

Résumé

Si vous utilisez Rails, il est indispensable d'adopter un style RESTful J'espère que vous pouvez le comprendre d'une manière ou d'une autre.

La partie que vous faites vous-même est également conforme à REST, et la partie que Rails fait bien Comme il est conforme à REST, il semble préférable de poursuivre le tutoriel tout en le comprenant.

Recommended Posts

Comprendre REST améliorera les perspectives du didacticiel Ruby on Rails
Explication de Ruby sur rails pour les débutants ①
Paramètres de validation pour la fonction de connexion Ruby on Rails
[Ruby on Rails] Jusqu'à l'introduction de RSpec
Quand le terminal Ruby on Rails revient en arrière
Publiez l'application avec ruby on rails
[Ruby on Rails] Mémo d'introduction Select2 pour Webpacker
[Rails] Procédure de liaison de bases de données avec Ruby On Rails
Déterminez la page actuelle avec Ruby on Rails
[Ruby on Rails] Comment changer le nom de la colonne
Ruby on Rails élémentaire
Principes de base de Ruby on Rails
Association Ruby On Rails
Explication de Ruby sur rails pour les débutants ⑥ ~ Création de validation ~
Explication de Ruby on rails pour les débutants ② ~ Création de liens ~
(Ruby on Rails6) Refléter le contenu publié à partir du formulaire
Essayez d'utiliser l'attribut de requête Ruby on Rails
Explication de Ruby on rails pour les débutants ⑦ ~ Implémentation Flash ~
[Ruby on Rails] Seul l'utilisateur qui a publié peut modifier
[Procédure 1 pour les débutants] Ruby on Rails: Construction d'un environnement de développement
(Ruby on Rails6) Affichage de la base de données qui a obtenu l'identifiant de la base de données
Supprimer tout le contenu de la page de liste [Ruby on Rails]
Une note sur la fonction de départ de Ruby on Rails
[Ruby on Rails] Saisissez automatiquement une adresse à partir d'un code postal
[Note] À propos du problème Fizz_Buzz (Fonctionnement de Ruby on Rails)
Explication de Ruby on rails pour les débutants ③ ~ Création d'une base de données ~
Record d'apprentissage de Ruby on rails -2020.10.03
Création de portfolio Ruby on Rails
Record d'apprentissage Ruby on rails -2020.10.04
[Ruby on Rails] Debuck (binding.pry)
Record d'apprentissage de Ruby on rails -2020.10.05
Record d'apprentissage de Ruby on rails -2020.10.09
Rails ~ Comprendre la fonction de message ~
Record d'apprentissage Ruby on rails-2020.10.07 ①
Annuler la migration de Ruby on Rails
Record d'apprentissage de Ruby on rails -2020.10.06
Résumé de la validation Ruby on Rails
Mémorandum de base Ruby on Rails
Comprendre la couverture du code avec Rspec, le framework de test Ruby on Rails
[Ruby on Rails] Changez la destination de sauvegarde du recueil de gemmes * Remarque
Explication de Ruby on rails pour les débutants ⑤ ~ Modifier et supprimer la base de données ~
J'ai résumé le flux jusqu'à l'implémentation de simple_calendar dans Ruby on Rails.
Points à retenir et concepts dans le didacticiel Ruby on Rails
[Ruby on Rails] Comment éviter de créer des routes inutiles pour concevoir
(Ruby on Rails6) Créer une fonction pour modifier le contenu publié
[Ruby on Rails] Passez les paramètres divisés par date_select à FormObject.
[Ruby on Rails] Lors de la première connexion ・ Comment diviser l'écran en deux à l'aide de jQuery