Rails Insights

Einrichten einer API-Only Rails-Anwendung

Ruby on Rails ist ein beliebtes Framework zur Entwicklung von Webanwendungen. In den letzten Jahren hat sich der Trend hin zu API-Only-Anwendungen verstärkt, da viele Entwickler moderne Frontend-Technologien wie React, Vue.js oder Angular verwenden, um Benutzeroberflächen zu erstellen. In diesem Artikel zeigen wir Ihnen, wie Sie eine API-Only Rails-Anwendung einrichten können, die als Backend für Ihre Frontend-Anwendung dient.

Was ist eine API-Only Anwendung?

Eine API-Only Anwendung ist eine Webanwendung, die ausschließlich als Schnittstelle (API) fungiert. Sie bietet Endpunkten, über die andere Anwendungen (z. B. mobile Apps oder Single-Page-Anwendungen) Daten abrufen oder senden können. Im Gegensatz zu traditionellen Rails-Anwendungen, die HTML-Seiten rendern, konzentriert sich eine API-Only Anwendung auf die Bereitstellung von JSON-Daten.

Voraussetzungen

  • Ruby (Version 2.7 oder höher)
  • Rails (Version 6 oder höher)
  • Bundler
  • Node.js und Yarn (für die Verwaltung von JavaScript-Paketen)

Schritt 1: Erstellen einer neuen Rails-Anwendung

Um eine neue API-Only Rails-Anwendung zu erstellen, verwenden Sie den folgenden Befehl in Ihrem Terminal:

rails new meine_api --api

Hierbei ist meine_api der Name Ihrer Anwendung. Der --api Schalter sorgt dafür, dass Rails eine API-Only Anwendung erstellt, die nur die notwendigen Middleware und Konfigurationen für eine API enthält.

Schritt 2: Konfigurieren der Datenbank

Nach der Erstellung Ihrer Anwendung müssen Sie die Datenbank konfigurieren. Rails verwendet standardmäßig SQLite, aber Sie können auch andere Datenbanken wie PostgreSQL oder MySQL verwenden. Um die Datenbank zu konfigurieren, öffnen Sie die Datei config/database.yml und passen Sie die Einstellungen an Ihre Bedürfnisse an.

Hier ist ein Beispiel für eine PostgreSQL-Konfiguration:

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5
  username: 
  password: 

development:
  <<: *default
  database: meine_api_development

test:
  <<: *default
  database: meine_api_test

production:
  <<: *default
  database: meine_api_production
  username: meine_api
  password: <%= ENV['MEINE_API_DATABASE_PASSWORD'] %>

Nachdem Sie die Konfiguration abgeschlossen haben, führen Sie den folgenden Befehl aus, um die Datenbank zu erstellen:

rails db:create

Schritt 3: Erstellen von Modellen und Migrationen

Jetzt können wir mit der Erstellung von Modellen und Migrationen beginnen. Angenommen, wir möchten ein einfaches Blog-System erstellen, in dem Benutzer Beiträge erstellen können. Wir erstellen ein Modell für Post:

rails generate model Post title:string content:text

Dieser Befehl generiert eine Migration, die wir nun ausführen können:

rails db:migrate

Jetzt haben wir ein Post Modell mit den Attributen title und content.

Schritt 4: Erstellen von Controllern

Um die API-Endpunkte zu erstellen, benötigen wir Controller. Lassen Sie uns einen Controller für unsere Post Ressourcen erstellen:

rails generate controller Posts

Öffnen Sie nun die Datei app/controllers/posts_controller.rb und fügen Sie die folgenden Methoden hinzu:

class PostsController < ApplicationController
  def index
    @posts = Post.all
    render json: @posts
  end

  def show
    @post = Post.find(params[:id])
    render json: @post
  end

  def create
    @post = Post.new(post_params)
    if @post.save
      render json: @post, status: :created
    else
      render json: @post.errors, status: :unprocessable_entity
    end
  end

  def update
    @post = Post.find(params[:id])
    if @post.update(post_params)
      render json: @post
    else
      render json: @post.errors, status: :unprocessable_entity
    end
  end

  def destroy
    @post = Post.find(params[:id])
    @post.destroy
    head :no_content
  end

  private

  def post_params
    params.require(:post).permit(:title, :content)
  end
end

In diesem Controller haben wir die grundlegenden CRUD-Operationen (Create, Read, Update, Delete) für unsere Post Ressourcen implementiert.

Schritt 5: Routen konfigurieren

Um die API-Endpunkte zugänglich zu machen, müssen wir die Routen konfigurieren. Öffnen Sie die Datei config/routes.rb und fügen Sie die folgenden Zeilen hinzu:

Rails.application.routes.draw do
  resources :posts
end

Diese Zeile erstellt die notwendigen Routen für unsere PostsController Methoden.

Schritt 6: Testen der API

Jetzt, da wir unsere API eingerichtet haben, ist es an der Zeit, sie zu testen. Sie können Tools wie Postman oder cURL verwenden, um Anfragen an Ihre API zu senden. Hier sind einige Beispiele für cURL-Befehle:

  • Alle Beiträge abrufen:
  • curl -X GET http://localhost:3000/posts
  • Ein neues Posting erstellen:
  • curl -X POST http://localhost:3000/posts -H "Content-Type: application/json" -d '{"post": {"title": "Mein erster Beitrag", "content": "Inhalt des Beitrags"}}'
  • Ein Posting aktualisieren:
  • curl -X PATCH http://localhost:3000/posts/1 -H "Content-Type: application/json" -d '{"post": {"title": "Aktualisierter Titel"}}'
  • Ein Posting löschen:
  • curl -X DELETE http://localhost:3000/posts/1

Schritt 7: Authentifizierung hinzufügen

In vielen Anwendungen ist es wichtig, eine Authentifizierung hinzuzufügen, um sicherzustellen, dass nur autorisierte Benutzer auf bestimmte API-Endpunkte zugreifen können. Eine gängige Methode zur Implementierung der Authentifizierung in Rails ist die Verwendung von JWT (JSON Web Tokens). Es gibt mehrere Gems, die Ihnen dabei helfen können, wie devise und devise-jwt.

Um JWT in Ihrer Anwendung zu verwenden, fügen Sie die folgenden Gems zu Ihrer Gemfile hinzu:

gem 'devise'
gem 'devise-jwt'

Führen Sie dann bundle install aus, um die Gems zu installieren. Danach können Sie devise konfigurieren und die Authentifizierung für Ihre API-Endpoints einrichten.

Fazit

In diesem Artikel haben wir die Schritte zum Einrichten einer API-Only Rails-Anwendung durchlaufen. Wir haben gelernt, wie man eine neue Anwendung erstellt, die Datenbank konfiguriert, Modelle und Controller erstellt, Routen konfiguriert und die API testet. Darüber hinaus haben wir einen kurzen Überblick über die Implementierung von Authentifizierung gegeben.

Mit diesen Grundlagen sind Sie gut gerüstet, um Ihre eigene API-Only Anwendung zu erstellen und sie mit modernen Frontend-Technologien zu kombinieren. Viel Spaß beim Programmieren!

Published: August 22, 2024

© 2024 RailsInsights. All rights reserved.