[RUBY] Créez une API de tableau d'affichage avec certification et autorisation avec Rails 6 # 1 Construction de l'environnement

introduction

J'ai créé ceci parce que je n'ai pas trouvé beaucoup de tutoriels sur l'API Rails. Cela fait environ six mois que j'ai commencé à utiliser l'API Rails, veuillez donc signaler toute erreur.

Je vais essayer de créer une API de tableau d'affichage en utilisant le mode API Rails. Le frontal n'est pas inclus dans ce didacticiel. Après avoir terminé l'API, veuillez choisir celui que vous aimez.

table des matières

C'est un total de 18 sérialisations

Public cible

Il peut être difficile de rattraper son retard sans une connaissance minimale des opérations Rails CRUD.

Environnement final ・ Gem

AWS Cloud9 PostgreSQL 9.5.15 Ruby 2.7.1 Ruby on Rails 6.0.3.2

Gem Sérialiseurs: active_model_serializers Authentification: devise_token_auth Autorisation: pundit Données factices: Faker Analyse de code statique: rubocop Test: RSpec, FactoryBot

Créer un environnement Cloud9

Tout d'abord, si vous n'avez pas de compte AWS, obtenez-en un. Dans cet article, nous vous expliquerons en partant du principe que vous disposez d'un compte.

Recherchez Cloud 9 dans AWS Management Console. s1.png

Appuyez sur Créer un environnement. s2.png

Créez-le avec un nom et une description descriptifs. s3.png La deuxième page est pratiquement tout bien par défaut.

Cela prendra quelques minutes à construire, alors laissez-le tranquille. Une fois terminé, cet écran IDE sera affiché.

s4.png

Mise à jour de la version Ruby

Ruby et Rails sont inclus depuis le début, mais la version est ancienne.

$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
$ rails -v
Rails 5.0.0

s5.png

La version stable au moment de la rédaction de l'article est la 2.7.1, alors augmentons-la.

$ rvm install 2.7.1
...
$ rvm use 2.7.1
$ ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]

Il est monté en toute sécurité.

Référence: [AWS] Comment mettre à jour la version Ruby sur Cloud9 (à l'aide de rvm)

Élevez la version de Rails

Quant à cela, la dernière version est la 6.0.3 au moment de la rédaction, mais la version installée est la 5.0.0, ce qui est assez ancienne, alors augmentons-la.

$ gem install rails
...
$ rails -v
Rails 6.0.3.2

C'est facile.

Référence: Change Rails version in Cloud 9

Insérer postgreSQL

Pourquoi mettre postgres à ce moment?

La base de données de développement par défaut de Rails est SQLite, mais dans l'environnement Cloud9 d'Amazon Linux, la version de SQLite est faible et les applications ne peuvent pas être créées. Puisqu'il est difficile de mettre à jour la version, j'utiliserai PostgreSQL cette fois.

De plus, comme son nom l'indique, SQLite est fonctionnellement léger, il y a donc beaucoup de choses qui ne peuvent pas être faites par rapport aux autres SGBDR, et il peut être inutilement obstrué, donc l'éviter est également l'un des facteurs.

Installez-le d'abord.

$ sudo yum install postgresql95-devel postgresql95-server postgresql95-contrib
$ psql --version
psql (PostgreSQL) 9.5.15

Ensuite, initialisez et démarrez la création de l'utilisateur. Vous pouvez ignorer l'autorisation refusée.

$ sudo service postgresql95 initdb
Initializing database: sudo service postgresql95 start     [  OK  ]
$ sudo service postgresql95 start
Starting postgresql95 service:                             [  OK  ]
$ sudo -u postgres createuser -s ec2-user
could not change directory to "/home/ec2-user/environment": Permission denied

Référence: [Rails6] Essayez de fonctionner sur AWS Cloud9 (Amazon Linux)

Rails nouveau en mode API

$ rails new bbs -d postgresql --api

Ajoutez --api pour entrer en mode API Rails. Il est créé sans générer de fichiers inutiles dans l'API.

Lancer le serveur de test Rails

Lancez un nouveau terminal à partir du nouveau terminal.

s6.png

En local, etc., le serveur de test ne peut être démarré qu'avec rails s, mais Cloud 9 nécessite une option.

$ cd bbs/
$ rails s -b $IP -p $PORT
...
* Listening on tcp://127.0.0.1:8080
Use Ctrl-C to stop

Cela démarrera le serveur. Vous pouvez l'arrêter avec Ctrl + C comme écrit. Vous pouvez voir que cela fonctionne sur le port8080.

Revenons au terminal et vérifions avec curl pour voir s'il a démarré correctement. N'arrêtez pas la fenêtre de terminal qui a démarré le serveur de test.

$ cd bbs/
$ curl localhost:8080                                                                                                                  
{"status":500,"error":"Internal Server Error","exception":"#\u003cActiveRecord::NoDatabaseError: FATAL:  database \"bbs_development\" does not exist

Apparemment, il n'y a pas de DB et je suis en colère. Initialisons la base de données avec des rails.

$ rails db:create
...
Created database 'bbs_development'
Created database 'bbs_test'
$ curl localhost:8080                                                                                                                  

Si une grande quantité de chaînes de caractères de type html apparaît, ce n'est pas grave car l'erreur de la série 500 ne s'est pas produite pour le moment.

Initialiser l'IDE

Je veux que le retrait soit space2, alors allez à l'écran de réglage à partir de la marque d'engrenage sur le bord droit de l'écran. Sélectionnez l'éditeur de code (Ace)

Déviation des Soft Tabs de 4 à 2 On Save, Strip Whitespace

Et fermer.

edit.png

Autoriser l'hôte

Depuis Rails6, si vous n'autorisez pas l'hôte, la page ne s'affichera pas avec une erreur. J'exécute sur Cloud9, alors ajoutez des hôtes AWS. Après l'enregistrement, arrêtez le serveur de test une fois avec Ctrl + C et redémarrez-le. Sinon, la configuration ne sera pas reflétée.

config/application.rb


...
module Bbs
  class Application < Rails::Application
...

+    config.hosts << '.amazonaws.com'

...
  end
end

Afficher l'écran de bienvenue

Appuyez sur Aperçu de l'application en cours depuis le haut de l'écran pour faire apparaître une petite fenêtre d'application.

s7.png

Cependant, cela ne fonctionne pas correctement dans cette petite fenêtre, alors appuyez sur Pop Out Into New Window pour faire apparaître une autre fenêtre.

s8.png

Enfin, l'écran de bienvenue s'affiche normalement.

welcome.png

A continué

Création d'une API de tableau d'affichage avec certification et autorisation dans Rails 6 # 2 Présentation de git et rubocop [Vers la table de sérialisation]

Recommended Posts

Créez une API de tableau d'affichage avec certification et autorisation avec Rails 6 # 1 Construction de l'environnement
Présentation de # 2 git et rubocop pour créer une API de tableau d'affichage avec autorisation d'authentification dans Rails
Créer une API de tableau d'affichage avec autorisation de certification dans Rails 6 # 13 Accorder l'en-tête d'authentification
Construire une API de tableau d'affichage avec certification et autorisation avec Rails 6 # 18 ・ Implémentation du contrôleur de l'utilisateur final
Créez une API de tableau d'affichage avec certification et autorisation avec Rails 6 # 3 RSpec, FactoryBot introduit et post-modèle
Créer une API de tableau d'affichage avec autorisation dans Rails 6 # 12 Association d'utilisateur et de publication
Construire une API de tableau d'affichage avec certification et autorisation dans le contrôleur Rails 6 # 5, implémentation des routes
Introduction de # 10 devise_token_auth pour créer une API de tableau d'affichage avec autorisation d'authentification dans Rails 6
Introduction de l'expert n ° 15 pour créer une API de tableau d'affichage avec certification et autorisation dans Rails 6
Créez une API de tableau d'affichage avec certification et autorisation dans Rails 6 # 17 Ajoutez des privilèges d'administrateur
Créer une API de tableau d'affichage avec autorisation de certification dans Rails 6 # 11 Test et validation du modèle utilisateur ajoutés
Construire une API de tableau d'affichage avec certification et autorisation dans Rails 6 # 14 Seed Affichage du temps d'exécution
# 16 paramètre de stratégie pour créer une API de tableau d'affichage avec autorisation de certification dans Rails 6
Implémentation n ° 8 pour créer une API de tableau d'affichage avec autorisation de certification dans Rails 6
# 4 post-validation et mise en œuvre de test pour créer une API de tableau d'affichage avec certification et autorisation dans Rails 6
Présentation du sérialiseur n ° 9 pour créer une API de tableau d'affichage avec certification et autorisation dans Rails 6
Créez une API de tableau d'affichage avec certification et autorisation dans Rails 6 # 6 show, créez une implémentation
Créer une API de tableau d'affichage avec autorisation de certification dans la mise à jour Rails 6 # 7, détruire l'implémentation
Comment créer une API avec GraphQL et Rails
Environnement Build Rails (API) x MySQL x Nuxt.js avec Docker
[Docker] Construction de l'environnement Rails 5.2 avec docker
[Rails] [Docker] Le copier-coller est OK! Comment créer un environnement de développement Rails avec Docker
Créer un environnement Node.js avec Docker
Créer un environnement Tomcat 8.5 avec Pleiades 4.8
Créez un environnement de développement local pour les didacticiels Rails avec Docker-Introduisez Bootstrap et Font Awesome avec Webpack-
[Construction de l'environnement avec Docker] Rails 6 et MySQL 8
Étapes pour créer un environnement de développement Ruby on Rails avec Vagrant
J'ai essayé de créer une fonction de groupe (babillard) avec Rails
Construction de Rails 6 et environnement PostgreSQL avec Docker
Créer un environnement de développement PureScript avec Docker
Construction de l'environnement du serveur API Rails à l'aide de docker-compose
Résumé de la construction de l'environnement avec rvm et postgresql
Comment créer un environnement Rails 6 avec Docker
J'ai construit un environnement de rails avec docker et mysql, mais j'étais malade
Créez un environnement de test d'application Windows avec Selenium Grid, Appium et Windows Application Driver
[Copier et coller] Créez un environnement de développement Laravel avec Docker Compose, partie 2
[Rails API x Docker] Construction facile de l'environnement avec contrôle de la coque et du fonctionnement avec Flutter
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 6.x)
Créez un environnement de développement local pour les didacticiels Rails avec Docker (Rails 6 + PostgreSQL + Webpack)
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 5.x)
Modèle: créer un environnement de développement Ruby / Rails avec un conteneur Docker (version Ubuntu)
Modèle: créer un environnement de développement Ruby / Rails avec un conteneur Docker (version Mac)
Créer un environnement de développement pour Docker + Rails6 + Postgresql
Créer un environnement Laravel / Docker avec VSCode devcontainer
Créez rapidement un environnement de développement WordPress avec Docker
[Win10] Créer un environnement de développement JSF avec NetBeans
Préparer un environnement de scraping avec Docker et Java
[Rails] Comment créer un environnement avec Docker
Créer un environnement de développement Java avec VS Code