[RUBY] Einführung des Serializers Nr. 9 zum Erstellen einer Bulletin-Board-API mit Zertifizierung und Autorisierung in Rails 6

Erstellen einer Bulletin Board-API mit Zertifizierungsberechtigung in der Rails 6 # 8-Seed-Implementierung

Einführung von ActiveModelSerializer

Durch Einfügen eines Serialisierers können Sie die von json zurückgegebenen Daten einfach formatieren.

Gemfile


...

+ # serializer
+ gem "active_model_serializers"
$ bundle

Konfigurationsdateien und Serializer bearbeiten

Erstellen Sie nach der Installation einen Post Model Serializer und eine ActiveModelSerializer-Einstellungsdatei.

$ rails g serializer post
$ touch config/initializers/active_model_serializer.rb

app/serializers/post_serializer.rb


# frozen_string_literal: true

#
# post serializer
#
class PostSerializer < ActiveModel::Serializer
  attributes :id
end

config/initializers/active_model_serializer.rb


# frozen_string_literal: true

ActiveModelSerializers.config.adapter = :json

app/controllers/v1/posts_controller.rb


     def index
       posts = Post.order(created_at: :desc).limit(20)
-      render json: { posts: posts }
+      render json: posts
     end
 
     def show
-      render json: { post: @post }
+      render json: @post
     end
 
     def create
       post = Post.new(post_params)
       if post.save
-        render json: { post: post }
+        render json: post
       else
         render json: { errors: post.errors }
       end
@@ -27,7 +27,7 @@ module V1
 
     def update
       if @post.update(post_params)
-        render json: { post: @post }
+        render json: @post
       else
         render json: { errors: @post.errors }
       end
@@ -35,7 +35,7 @@ module V1
 
     def destroy
       @post.destroy
-      render json: { post: @post }
+      render json: @post
     end

Sobald Sie dies getan haben, stoppen Sie "Rails s" und starten Sie neu.

Überprüfen Sie mit Locken

$ curl localhost:8080/v1/posts 
{"posts":[{"id":20},{"id":19},{"id":18},{"id":17},{"id":16},{"id":15},{"id":14},{"id":13},{"id":12},{"id":11},{"id":10},{"id":9},{"id":8},{"id":7},{"id":6},{"id":5},{"id":4},{"id":3},{"id":2},{"id":1}]}
$ curl localhost:8080/v1/posts/1
{"post":{"id":1}}

Ich konnte eine Liste mit IDs abrufen, da ich nur IDs im Serializer verwendet habe. Fügen wir nun Thema und Körper hinzu.

app/serializers/post_serializer.rb


 # frozen_string_literal: true

 #
 # post serializer
 #
 class PostSerializer < ActiveModel::Serializer
-  attributes :id
+  attributes :id, :subject, :body  
 end
$ curl localhost:8080/v1/posts
{"posts":[{"id":20,"subject":"Nutzlos","body":"Der Tintenfisch der Biene. Heftiger Blutgroll. Die versteckten Ruinen."},...
curl localhost:8080/v1/posts/1
{"post":{"id":1,"subject":"hello","body":"Generalleutnant Polizist. Meishibokin Katamichi. Traditionelles Tokugawa super ~.

Es scheint normal zu funktionieren. Lassen Sie uns auch rubocop und rspec ausführen und festschreiben, wenn es kein Problem gibt.

Fortsetzung

Erstellen einer Bulletin Board-API mit Zertifizierung und Autorisierung in Rails 6 # 10 devise_token_auth eingeführt [Zur Serialisierungstabelle]

Recommended Posts

Einführung des Serializers Nr. 9 zum Erstellen einer Bulletin-Board-API mit Zertifizierung und Autorisierung in Rails 6
Einführung von # 10 devise_token_auth zum Erstellen einer Bulletin Board-API mit Zertifizierung und Autorisierung in Rails 6
# 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
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 Zertifizierungsberechtigung im Rails 6 # 7-Update und zerstören Sie die Implementierung
Erstellen Sie eine Bulletin Board-API mit Zertifizierungsberechtigung in Rails 6 # 13 Grant-Authentifizierungsheader
Erstellen Sie eine Bulletin Board-API mit Zertifizierung und Autorisierung im Rails 6 # 5-Controller und leiten Sie die Implementierung weiter
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 Zertifizierung und Autorisierung in Rails 6 # 14 Seed. Anzeige der Ausführungszeit
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 Zertifizierung und Autorisierung mit Rails 6 # 1 Environment Construction
Erstellen Sie eine Bulletin-Board-API mit Autorisierung in Rails 6 # 12 Assoziation von Benutzer und Beitrag
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 # 2 Einführung in Git und Rubocop
Erstellen Sie mit Rails 6 # 18 eine Bulletin-Board-API mit Zertifizierung und Autorisierung. ・ Implementierung des Endbenutzer-Controllers
# 4 nach Validierung und Testimplementierung zum Erstellen einer Bulletin Board-API mit Zertifizierung und Autorisierung in Rails 6
So erstellen Sie eine API mit GraphQL und Rails
Ich habe versucht, mit Rails eine Gruppenfunktion (Bulletin Board) zu erstellen
Verwendung von credentials.yml.enc aus Rails 5.2
So erstellen Sie eine Rails 6-Umgebung mit Docker
Versuchen Sie, ein Bulletin Board in Java zu erstellen
[Rails] So erstellen Sie eine Umgebung mit Docker
[So fügen Sie ein Video mit Rails in haml ein]
Abfragen von Arrays in jsonb mit Rails + postgres
Build Rails (API) x MySQL x Nuxt.js Umgebung mit Docker
So richten Sie einen Proxy mit Authentifizierung in Feign ein
Japanisieren Sie mit i18n mit Rails
Implementieren Sie die LTI-Authentifizierung in Rails
Einführung des gRPC-Clients in Schienen
Ich habe versucht, die Rails-API mit TDD von RSpec zu implementieren. Teil2 -Benutzerauthentifizierung-
Wovon ich süchtig war, als ich die Google-Authentifizierung mit Rails implementierte
So erhalten Sie den Wert von Boolean mit jQuery in einfacher Rails-Form
So benennen Sie ein Modell mit externen Schlüsseleinschränkungen in Rails um
So erstellen Sie eine Rails + Vue + MySQL-Umgebung mit Docker [neueste Version 2020/09]
Ich habe versucht, die Rails-API mit TDD von RSpec zu implementieren. Teil3-Aktionsimplementierung mit Authentifizierung
Schritte zum Erstellen einer Ruby on Rails-Entwicklungsumgebung mit Vagrant