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.
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.
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.
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
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
.
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.
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.
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:
curl -X GET http://localhost:3000/posts
curl -X POST http://localhost:3000/posts -H "Content-Type: application/json" -d '{"post": {"title": "Mein erster Beitrag", "content": "Inhalt des Beitrags"}}'
curl -X PATCH http://localhost:3000/posts/1 -H "Content-Type: application/json" -d '{"post": {"title": "Aktualisierter Titel"}}'
curl -X DELETE http://localhost:3000/posts/1
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.
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!
© 2024 RailsInsights. All rights reserved.