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.
C'est un total de 18 sérialisations
Il peut être difficile de rattraper son retard sans une connaissance minimale des opérations Rails CRUD.
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
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.
Appuyez sur Créer un environnement.
Créez-le avec un nom et une description descriptifs. 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é.
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
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)
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
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 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.
Lancez un nouveau terminal à partir du nouveau terminal.
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.
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.
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
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.
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.
Enfin, l'écran de bienvenue s'affiche normalement.
→ 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