Im Bereich der Webentwicklung ist die Erstellung von RESTful APIs eine allgemeine Notwendigkeit. RESTful-APIs ermöglichen die standardisierte Kommunikation verschiedener Systeme über HTTP und sind somit ein wesentlicher Bestandteil moderner Webanwendungen. Ruby on Rails (RoR) bietet ein robustes Framework für die Webentwicklung, und mit dem Zusatz von Grape, einem Mikro-Framework für die Erstellung von APIs, wird die Erstellung einer RESTful-API noch schlanker und effizienter. Dieser Artikel führt Sie durch den Prozess der Erstellung einer RESTful-API mit Grape in einer Ruby on Rails-Anwendung, komplett mit einem Beispiel.
Was ist eine Weintraube?
Grape ist ein Ruby-Framework, das speziell für die Erstellung von REST-ähnlichen APIs entwickelt wurde. Es ist leichtgewichtig und ergänzt Rails gut. Es bietet eine einfache DSL (Domain-Specific Language) zur Definition von RESTful APIs. Grape ermöglicht es Ihnen, sich auf die API-Logik zu konzentrieren und gleichzeitig allgemeine Aufgaben wie Parametervalidierung, Formatierung und Versionierung zu erledigen.
Einrichten von Grape in einer Rails-Anwendung
Um loszulegen, benötigen Sie eine Rails-Anwendung. Wenn Sie noch keine haben, können Sie eine neue Rails-Anwendung mit erstellen:
Schienen neu grape_api_example
cd grape_api_example
Fügen Sie den Edelstein Grape zu Ihrem Gemfile:
Edelstein 'Traube'
Laufen Bundle-Installation um den Edelstein zu installieren.
Erstellen der API
Erstellen Sie ein neues Verzeichnis für Ihre API unter app:
mkdir app/api
Als nächstes erstellen Sie eine Basisklasse für Ihre API. Diese Klasse wird erben von Weintraube::API und dienen als Grundlage für Ihre Endpunkte. Eine Datei erstellen app/api/base_api.rb und fügen Sie den folgenden Code hinzu:
Modul-API
Klasse Base < Grape::API
format :json
rescue_from :all do |e|
error_response(message: e.message, status: 500)
Ende
einhängen API::V1::Base
Ende
Ende
Versionierung Ihrer API
Die Versionskontrolle ist entscheidend für die Aufrechterhaltung der Abwärtskompatibilität. In diesem Beispiel werden wir Version 1 unserer API erstellen. Erstellen Sie ein Verzeichnis app/api/v1 und eine Basisdatei app/api/v1/base.rb:
Modul-API
Modul V1
Klasse Base < Grape::API
Version 'v1', mit: :Pfad
API::V1::Benutzer einhängen
Ende
Ende
Ende
Definieren von Endpunkten
Lassen Sie uns einen einfachen Endpunkt für die Benutzerverwaltung erstellen. Eine Datei erstellen app/api/v1/users.rb:
Modul API Baustein V1 Klasse Benutzer < Grape::API resource :users do desc 'Rückgabe einer Liste von Benutzern' get do Benutzer.alle end desc 'Einen bestimmten Benutzer zurückgeben' params do requires :id, type: Integer, desc: 'Benutzer-ID' end route_param :id do get do User.find(params[:id]) end end desc 'Einen Benutzer erstellen' params tun requires :name, type: String, desc: 'Nutzername' requires :email, type: String, desc: 'Benutzer-E-Mail' end post do User.create!({ name: params[:name], email: params[:email] }) end desc 'Einen Benutzer aktualisieren' params tun requires :id, type: Integer, desc: 'Benutzer-ID' requires :name, type: String, desc: 'Nutzername' requires :email, type: String, desc: 'Benutzer-E-Mail' end put ':id' do Benutzer = Benutzer.find(params[:id]) user.update({ name: params[:name], email: params[:email] }) Ende desc 'Einen Benutzer löschen' params tun requires :id, type: Integer, desc: 'Benutzer-ID' end delete ':id' do User.find(params[:id]).destroy end end end end end
Montage der API
Um die API einzubinden, müssen Sie Ihre config/routes.rb:
Rails.application.routes.draw tun
mount API::Base => '/'
Ende
Erstellen des Benutzermodells
Um die Benutzerendpunkte zu unterstützen, erstellen Sie ein Benutzermodell:
rails generate model Benutzername:string email:string
Schienen db: migrieren
Testen der API
Starten Sie Ihren Rails-Server:
Schienen-Server
Sie können nun Ihre API-Endpunkte mit einem Tool wie locken. oder Postman. Hier sind einige Beispielanfragen:
Erhalten Sie alle Benutzer:
http://localhost:3000/v1/users locken.
Einen bestimmten Benutzer abrufen:
http://localhost:3000/v1/users/1 locken.
Erstellen Sie einen neuen Benutzer:
curl -X POST http://localhost:3000/v1/users -d "name=John Doe&[email protected]"
Aktualisieren Sie einen Benutzer:
curl -X PUT http://localhost:3000/v1/users/1 -d "name=Jane Doe&[email protected]"
Löschen Sie einen Benutzer:
curl -X DELETE http://localhost:3000/v1/users/1
Abschluss
Die Verwendung von Grape mit Ruby on Rails bietet eine leistungsstarke Kombination für die Erstellung von RESTful APIs. Die leichtgewichtige und flexible Natur von Grape macht es einfach, API-Endpunkte zu definieren und zu verwalten, während Rails die zugrunde liegende Infrastruktur verwaltet. Dieses Beispiel demonstriert eine grundlegende CRUD-API für die Benutzerverwaltung und zeigt, wie man Grape innerhalb einer Website einrichtet und verwendet. Rails-Anwendung. Auf dieser Grundlage können Sie die API um komplexere Funktionen erweitern und sie in andere Dienste integrieren.