[RAILS] API (lors de la mise en œuvre d'une communication asynchrone)

supposition

Qu'est-ce que l'API

Un mécanisme de serveur qui renvoie dans un format tel que JSON.

Pour les demandes effectuées de manière asynchrone "Un mécanisme pour préparer un mécanisme pour répondre aux données demandées" est réalisé en créant une API.

Rails renvoie par défaut du HTML, Il est également possible de renvoyer des données au format JSON afin qu'elles puissent être gérées à partir de JavaScript.

Comment ajouter une API

Il existe plusieurs façons d'ajouter des API dans Rails. Cette fois, comment l'ajouter au contrôleur (action).

"Renvoie les données pour la communication asynchrone au contrôleur d'origine dans le cas d'une communication asynchrone"

Écrivez pour renvoyer JSON au lieu de HTML.

Utilisez respond_to pour renvoyer une réponse à une requête au format JSON

Mettre en œuvre pour des actions. Créez Songcolor dans les cas suivants. Ensuite, décrivez dans quel format la demande est renvoyée (réponse).

<Exemple A>#####_controller.rb (contrôleur correspondant)


  def create
    @songcolor = Songcolor.create(color: params[:color], song_id: params[:song_id])
    respond_to do |format|
      format.json
    end
  end

▼ ▼ Details Détails ▼ ▼   En utilisant une méthode appelée respond_to Vous pouvez créer une réponse en fonction du format. Il correspond à l'implémentation de "rendre possible le retour au format JSON". À l'avenir, il sera nécessaire de créer un fichier au format JSON "create.json.jbuilder" avec celui-ci. Décrivez les données à renvoyer. De plus, le nom du fichier doit être le même que le nom de l'action pour qu'il corresponde. Cette fois, cela correspond à l'action de création, donc ce sera "create.json.jbuilder".

<Exemple> Reprenez la plage importante du code ci-dessus


    respond_to do |format|
      format.json
    end

En écrivant dans l'action Après 〇〇 (action), renvoyez-le par la méthode selon la requête après respond_to ci-dessus.

<Autres méthodes> Il existe également une méthode qui ne crée pas le fichier de 〇〇.json.jbuilder.

Vous pouvez également ajouter {} au rendu pour le terminer comme indiqué ci-dessous.

<Exemple>#####_controller.rb


respond_to do |format|
  format.json { 
    render json: { id: @user.id, name: @user.name }
  }
end

Lors de la création d'un fichier .json.jbuilder

ruby:<Exemple> application/views/messages/show.json.jbuilder


json.content @message.content

=> { content: "@contenu du message" }

jbuilder a une clé à gauche et une valeur à droite json.content est la clé, @ message.content est la valeur

Dans mon application , écrivez la clé et le hachage "json.color @ songcolor.color". Vous devez réfléchir à ce que vous devez faire pour appeler les informations que vous souhaitez transmettre et afficher à partir des données.

Travail suivant 〇 〇 Lors de la création de json.jbuilder

Mettez le nom correspondant à l'action dans 〇〇 Créez 〇〇.json.jbuilder.

Terminal


%nom de l'application/views/messages/〇〇.json.jbuilder

La description à l'intérieur est basée sur le contenu décrit précédemment [Référence](https://qiita.com/kusaharajiji/items/3b374c73c12233485feb#jsonjbuilder%E3%81%AE%E3%83%95%E3%82%A1%E3%82 % A4% E3% 83% AB% E3% 82% 92% E4% BD% 9C% E6% 88% 90% E3% 81% 99% E3% 82% 8B% E5% A0% B4% E5% 90% 88 ).

Vérifiez si jbuilder est chargé

スクリーンショット 2020-10-15 18.41.15.png Il est chargé lorsque les caractères "Rendered" et "jbuilder" sont visibles.

C'est la fin! !!

Le flux ultérieur de communication asynchrone crée également un article.

Un dernier mot

Le mécanisme de l'API est de décrire le contenu du contrôleur. Après cela, des informations seront échangées. Je me demande si jbuilder décidera du contenu des données et Ajax transmettra les données. Je n'ai pas suffisamment étudié le type de travail, d'où et où.

Compréhension insuffisante en ce moment

--Description (clé et valeur) lors de l'exécution avec uniquement le contrôleur qui ne crée pas le fichier jbuilder --Comment écrire dans jbuilder (également clé et valeur)

Je voulais approfondir ma compréhension de cela.

Liens connexes

Le flux de communication asynchrone est entièrement décrit depuis l'introduction de jQuery [ici]([ttps: //kayoblog.org/programming_myapp_hidoukitushin/)

Recommended Posts

API (lors de la mise en œuvre d'une communication asynchrone)
Déclenchement d'événement avec la bibliothèque JavaScript JQuery / Ajax (lors de l'implémentation d'une communication asynchrone)
[Rails] Recherche de livres (communication asynchrone) avec l'API Amazon PA v5.0
Essayez d'implémenter le traitement asynchrone dans Azure
À propos des erreurs lors de la mise en œuvre de la validation du printemps