[RUBY] Erstellen Sie eine Bulletin-Board-API mit Zertifizierung und Autorisierung mit Rails 6 # 1 Environment Construction

Einführung

Ich habe dies erstellt, weil ich in der Rails-API nicht viele Tutorials gefunden habe. Es ist ungefähr ein halbes Jahr her, seit ich angefangen habe, die Rails-API zu verwenden. Bitte weisen Sie auf Fehler hin.

Ich werde versuchen, eine Bulletin Board-API im Rails-API-Modus zu erstellen. Das Frontend ist in diesem Tutorial nicht enthalten. Wählen Sie nach Abschluss der API die gewünschte aus.

Inhaltsverzeichnis

Es sind insgesamt 18 Serialisierungen

Zielgruppe

Es kann schwierig sein, ohne ein Mindestwissen über Rails CRUD-Operationen aufzuholen.

Endgültige Umgebung ・ Gem

AWS Cloud9 PostgreSQL 9.5.15 Ruby 2.7.1 Ruby on Rails 6.0.3.2

Gem Serializer: active_model_serializers Authentifizierung: devise_token_auth Autorisierung: pundit Dummy-Daten: Faker Statische Code-Analyse: rubocop Test: RSpec, FactoryBot

Erstellen einer Cloud9-Umgebung

Wenn Sie kein AWS-Konto haben, besorgen Sie sich zunächst eines. In diesem Artikel erklären wir unter der Annahme, dass Sie ein Konto haben.

Suchen Sie in der AWS Management Console nach Cloud 9. s1.png

Klicken Sie auf Umgebung erstellen. s2.png

Erstellen Sie es mit einem beschreibenden Namen und einer Beschreibung. s3.png Die zweite Seite ist standardmäßig in Ordnung.

Der Bau dauert einige Minuten. Lassen Sie ihn also in Ruhe. Nach Abschluss wird dieser IDE-Bildschirm angezeigt.

s4.png

Ruby-Versions-Upgrade

Ruby und Rails sind von Anfang an enthalten, aber die Version ist alt.

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

s5.png

Die stabile Version zum Zeitpunkt des Schreibens des Artikels ist 2.7.1.

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

Es ging sicher hoch.

Referenz: [AWS] So aktualisieren Sie die Ruby-Version auf Cloud9 (mit rvm)

Erhöhen Sie die Version von Rails

Die neueste Version ist zum Zeitpunkt des Schreibens 6.0.3, aber die installierte Version ist 5.0.0, was ziemlich alt ist. Lassen Sie uns sie also erhöhen.

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

Es ist einfach.

Referenz: Rails-Version in Cloud 9 ändern

Fügen Sie postgreSQL ein

Warum zu diesem Zeitpunkt Postgres setzen?

Die Standardentwicklungsdatenbank von Rails ist SQLite. In der Cloud9-Umgebung von Amazon Linux ist die Version von SQLite jedoch niedrig und es können keine Anwendungen erstellt werden. Da es schwierig ist, die Version zu aktualisieren, werde ich diesmal PostgreSQL verwenden.

Wie der Name schon sagt, ist SQLite funktional einfach, so dass viele Dinge im Vergleich zu anderen RDBMS nicht möglich sind und verschwendet werden können. Daher ist es einer der Faktoren, dies zu vermeiden.

Installieren Sie es zuerst.

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

Als nächstes initialisieren und starten Sie die Benutzererstellung. Sie können die verweigerte Berechtigung ignorieren.

$ 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

Referenz: [Rails6] Versuchen Sie, unter AWS Cloud9 (Amazon Linux) auszuführen

Schienen neu im API-Modus

$ rails new bbs -d postgresql --api

Fügen Sie --api hinzu, um den Rails-API-Modus aufzurufen. Es wird erstellt, ohne unnötige Dateien in der API zu generieren.

Starten Sie den Rails-Testserver

Starten Sie ein neues Terminal über das neue Terminal.

s6.png

In lokalen usw. kann der Testserver nur mit "Rails" gestartet werden, Cloud 9 erfordert jedoch eine Option.

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

Dadurch wird der Server gestartet. Sie können es mit Strg + C wie geschrieben stoppen. Sie können sehen, dass es auf Port8080 funktioniert.

Gehen wir zurück zum Terminal und überprüfen Sie mit Curl, ob es richtig gestartet wurde. Stoppen Sie nicht das Terminalfenster, mit dem der Testserver gestartet wurde.

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

Anscheinend gibt es keine DB und ich bin wütend. Lassen Sie uns die DB mit Schienen initialisieren.

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

Wenn eine große Anzahl von HTML-ähnlichen Zeichenfolgen angezeigt wird, ist dies in Ordnung, da der Fehler der 500er-Serie vorerst nicht aufgetreten ist.

Initialisieren Sie die IDE

Ich möchte, dass der Einzug Leerzeichen2 ist. Gehen Sie also von der Zahnradmarkierung am rechten Bildschirmrand zum Einstellungsbildschirm. Wählen Sie Code Editor (Ace)

Ablenkung der Soft Tabs von 4 auf 2 On Save, Strip Whitespace

Und nah dran.

edit.png

Erlaube dem Host

Wenn Sie in Rails6 den Host nicht zulassen, wird die Seite nicht mit einem Fehler angezeigt. Ich verwende Cloud9, also füge AWS-Hosts hinzu. Stoppen Sie den Testserver nach dem Speichern einmal mit Strg + C und starten Sie ihn neu. Andernfalls wird die Konfiguration nicht wiedergegeben.

config/application.rb


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

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

...
  end
end

Zeigen Sie den Begrüßungsbildschirm an

Drücken Sie oben auf dem Bildschirm auf Vorschau der laufenden Anwendung, um ein kleines Anwendungsfenster aufzurufen.

s7.png

In diesem kleinen Fenster funktioniert es jedoch nicht richtig. Drücken Sie daher in Neues Fenster herausspringen, um ein anderes Fenster aufzurufen.

s8.png

Schließlich wird der Begrüßungsbildschirm normal angezeigt.

welcome.png

Fortsetzung

Erstellen einer Bulletin Board-API mit Zertifizierung und Autorisierung in Rails 6 # 2 Einführung in Git und Rubocop [Zur Serialisierungstabelle]

Recommended Posts

Erstellen Sie eine Bulletin-Board-API mit Zertifizierung und Autorisierung mit Rails 6 # 1 Environment Construction
Erstellen Sie eine Bulletin Board-API mit Zertifizierung und Autorisierung in Rails 6 # 2 Einführung in Git und Rubocop
Erstellen Sie eine Bulletin Board-API mit Zertifizierungsberechtigung in Rails 6 # 13 Grant-Authentifizierungsheader
Erstellen Sie mit Rails 6 # 18 eine Bulletin-Board-API mit Zertifizierung und Autorisierung. ・ Implementierung des Endbenutzer-Controllers
Erstellen Sie eine Bulletin Board-API mit Zertifizierung und Autorisierung mit Rails 6 # 3 RSpec. FactoryBot wird eingeführt und ein Post-Modell erstellt
Erstellen Sie eine Bulletin-Board-API mit Autorisierung in Rails 6 # 12 Assoziation von Benutzer und Beitrag
Erstellen Sie eine Bulletin Board-API mit Zertifizierung und Autorisierung im Rails 6 # 5-Controller und leiten Sie die Implementierung weiter
Einführung von # 10 devise_token_auth zum Erstellen einer Bulletin Board-API mit Zertifizierung und Autorisierung in Rails 6
Einführung des Experten Nr. 15 zum Erstellen einer Bulletin-Board-API mit Zertifizierung und Autorisierung in Rails 6
Erstellen Sie eine Bulletin Board-API mit Zertifizierung und Autorisierung in Rails 6 # 17. Fügen Sie Administratorrechte hinzu
Erstellen Sie eine Bulletin-Board-API mit Autorisierung in Rails 6 # 11. Benutzermodelltest und Validierung hinzugefügt
Erstellen Sie eine Bulletin Board-API mit Zertifizierung und Autorisierung in Rails 6 # 14 Seed. Anzeige der Ausführungszeit
# 16 Richtlinieneinstellung zum Erstellen einer Bulletin Board-API mit Zertifizierungsberechtigung in Rails 6
# 8 Seed-Implementierung zum Erstellen einer Bulletin Board-API mit Zertifizierungsautorisierung in Rails 6
# 4 nach Validierung und Testimplementierung zum Erstellen einer Bulletin Board-API mit Zertifizierung und Autorisierung in Rails 6
Einführung des Serializers Nr. 9 zum Erstellen einer Bulletin-Board-API mit Zertifizierung und Autorisierung in Rails 6
Erstellen Sie eine Bulletin Board-API mit Zertifizierung und Autorisierung in Rails 6 # 6. Zeigen Sie, erstellen Sie die Implementierung
Erstellen Sie eine Bulletin Board-API mit Zertifizierungsberechtigung im Rails 6 # 7-Update und zerstören Sie die Implementierung
So erstellen Sie eine API mit GraphQL und Rails
Build Rails (API) x MySQL x Nuxt.js Umgebung mit Docker
[Docker] Rails 5.2-Umgebungskonstruktion mit Docker
[Rails] [Docker] Kopieren und Einfügen ist in Ordnung! So erstellen Sie eine Rails-Entwicklungsumgebung mit Docker
Erstellen Sie mit Docker eine Node.js-Umgebung
Erstellen Sie mit Pleiades 4.8 eine Tomcat 8.5-Umgebung
Erstellen Sie mit Docker-Introduce Bootstrap und Font Awesome with Webpack- eine lokale Entwicklungsumgebung für Rails-Tutorials.
[Umgebungskonstruktion mit Docker] Rails 6 & MySQL 8
Schritte zum Erstellen einer Ruby on Rails-Entwicklungsumgebung mit Vagrant
Ich habe versucht, mit Rails eine Gruppenfunktion (Bulletin Board) zu erstellen
Erstellen einer Rails 6- und PostgreSQL-Umgebung mit Docker
Erstellen Sie mit Docker eine PureScript-Entwicklungsumgebung
Rails API-Serverumgebungskonstruktion mit Docker-Compose
Zusammenfassung der Umgebungskonstruktion mit rvm und postgresql
So erstellen Sie eine Rails 6-Umgebung mit Docker
Ich habe eine Rails-Umgebung mit Docker und MySQL erstellt, aber ich war krank
Erstellen Sie eine Windows-Anwendungstestumgebung mit Selenium Grid, Appium und Windows Application Driver
[Kopieren und Einfügen] Erstellen Sie mit Docker Compose Part 2 eine Laravel-Entwicklungsumgebung
[Rails API x Docker] Einfache Umgebungskonstruktion mit Shell- und Funktionsprüfung mit Flutter
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 6.x)
Erstellen Sie mit Docker eine lokale Entwicklungsumgebung für Rails-Tutorials (Rails 6 + PostgreSQL + Webpack)
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 5.x)
Vorlage: Erstellen Sie eine Ruby / Rails-Entwicklungsumgebung mit einem Docker-Container (Ubuntu-Version).
Vorlage: Erstellen Sie eine Ruby / Rails-Entwicklungsumgebung mit einem Docker-Container (Mac-Version).
Erstellen Sie eine Entwicklungsumgebung für Docker + Rails6 + Postgresql
Erstellen Sie eine Laravel / Docker-Umgebung mit VSCode devcontainer
Erstellen Sie mit Docker schnell eine WordPress-Entwicklungsumgebung
[Win10] Erstellen Sie eine JSF-Entwicklungsumgebung mit NetBeans
Bereiten Sie eine Scraping-Umgebung mit Docker und Java vor
[Rails] So erstellen Sie eine Umgebung mit Docker
Erstellen Sie eine Java-Entwicklungsumgebung mit VS Code