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.
Es sind insgesamt 18 Serialisierungen
Es kann schwierig sein, ohne ein Mindestwissen über Rails CRUD-Operationen aufzuholen.
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
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.
Klicken Sie auf Umgebung erstellen.
Erstellen Sie es mit einem beschreibenden Namen und einer Beschreibung. 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.
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
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)
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
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
$ 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 ein neues Terminal über das neue Terminal.
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.
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.
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
Drücken Sie oben auf dem Bildschirm auf Vorschau der laufenden Anwendung, um ein kleines Anwendungsfenster aufzurufen.
In diesem kleinen Fenster funktioniert es jedoch nicht richtig. Drücken Sie daher in Neues Fenster herausspringen, um ein anderes Fenster aufzurufen.
Schließlich wird der Begrüßungsbildschirm normal angezeigt.
→ Erstellen einer Bulletin Board-API mit Zertifizierung und Autorisierung in Rails 6 # 2 Einführung in Git und Rubocop [Zur Serialisierungstabelle]
Recommended Posts