[RAILS] API (bei der Implementierung der asynchronen Kommunikation)

Annahme

Was ist API?

Ein Servermechanismus, der in einem Format wie JSON zurückgegeben wird.

Für asynchrone Anfragen "Ein Mechanismus zum Vorbereiten eines Mechanismus zum Antworten auf die angeforderten Daten" wird durch Erstellen einer API realisiert.

Rails gibt standardmäßig HTML zurück. Es ist auch möglich, Daten im JSON-Format zurückzugeben, damit sie über JavaScript verarbeitet werden können.

So fügen Sie eine API hinzu

Es gibt mehrere Möglichkeiten, APIs in Rails hinzuzufügen. Dieses Mal, wie man es dem Controller hinzufügt (Aktion).

"Gibt bei asynchroner Kommunikation Daten für die asynchrone Kommunikation an die ursprüngliche Steuerung zurück."

Schreiben Sie, um JSON anstelle von HTML zurückzugeben.

Verwenden Sie reply_to, um eine Antwort auf eine JSON-formatierte Anforderung zurückzugeben

Für Aktionen implementieren. Erstellen Sie in den folgenden Fällen Songcolor. Beschreiben Sie anschließend, in welchem Format die Anforderung zurückgegeben wird (Antwort).

<Beispiel A>#####_controller.rb (entsprechender Controller)


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

▼▼▼ Details ▼▼▼   Mit einer Methode namens reply_to Sie können eine Antwort entsprechend dem Format erstellen. Dies entspricht der Implementierung von "Rückgabe im JSON-Format ermöglichen". In Zukunft muss zusammen mit dieser Datei eine JSON-Formatdatei "create.json.jbuilder" erstellt werden. Beschreiben Sie die zurückzugebenden Daten. Außerdem sollte der Dateiname mit dem Aktionsnamen übereinstimmen, damit er übereinstimmt. Dieses Mal entspricht es der Erstellungsaktion, also "create.json.jbuilder".

<Beispiel> Nehmen Sie den wichtigen Bereich des obigen Codes weiter auf


    respond_to do |format|
      format.json
    end

Durch das Schreiben in der Aktion Geben Sie nach 〇〇 (Aktion) die Methode gemäß der obigen Anforderung nach reply_to zurück.

Es gibt auch eine Methode, die die Datei von 〇〇.json.jbuilder nicht erstellt.

Sie können auch {} zum Rendern hinzufügen, um es wie unten gezeigt zu vervollständigen.

<Beispiel>#####_controller.rb


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

Beim Erstellen einer .json.jbuilder-Datei

ruby:<Beispiel> App/views/messages/show.json.jbuilder


json.content @message.content

=> { content: "@Nachrichteninhalt" }

jbuilder hat links einen Schlüssel und rechts einen Wert json.content ist der Schlüssel, @ message.content ist der Wert

Schreiben Sie in meiner App den Schlüssel und den Hash "json.color @ songcolor.color". Sie müssen überlegen, was Sie tun müssen, um die Informationen aufzurufen, die Sie übergeben und aus den Daten anzeigen möchten.

Nächste Arbeit 〇 〇 Beim Erstellen von json.jbuilder

Geben Sie den Namen, der der Aktion entspricht, in 〇〇 ein Erstellen Sie 〇〇.json.jbuilder.

Terminal


%App Name/views/messages/〇〇.json.jbuilder

Die Beschreibung im Inneren basiert auf dem zuvor beschriebenen Inhalt [Referenz](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 ).

Überprüfen Sie, ob jbuilder geladen ist

スクリーンショット 2020-10-15 18.41.15.png Es wird geladen, wenn die Zeichen "Rendered" und "jbuilder" sichtbar sind.

Das ist das Ende! !!

Der nachfolgende Fluss der asynchronen Kommunikation erstellt auch einen Artikel.

Ein letztes Wort

Der Mechanismus der API besteht darin, den Inhalt des Controllers zu beschreiben. Danach werden Informationen ausgetauscht. Ich frage mich, ob jbuilder über den Inhalt der Daten entscheidet und Ajax die Daten weitergibt. Ich habe nicht genug darüber gelernt, welche Art von Arbeit von wo nach wo ist.

Unzureichendes Verständnis in dieser Zeit

--Beschreibung (Schlüssel und Wert), wenn nur der Controller verwendet wird, der die jbuilder-Datei nicht erstellt

Ich wollte mein Verständnis dafür vertiefen.

ähnliche Links

Der Ablauf der asynchronen Kommunikation wird vollständig ab der Einführung von jQuery [hier] beschrieben ([ttps: //kayoblog.org/programming_myapp_hidoukitushin/).

Recommended Posts

API (bei der Implementierung der asynchronen Kommunikation)
Ereignisauslösung mit der JavaScript-Bibliothek JQuery / Ajax (bei der Implementierung der asynchronen Kommunikation)
[Rails] Buchsuche (asynchrone Kommunikation) mit Amazon PA API v5.0
Versuchen Sie, die asynchrone Verarbeitung in Azure zu implementieren
Über Fehler bei der Implementierung der Federvalidierung