Att bygga en API-endast applikation med Ruby on Rails kan vara en fantastisk upplevelse, särskilt om du vill skapa en backend som kan kommunicera med olika klienter, som webbapplikationer, mobilappar eller andra tjänster. I denna artikel kommer vi att gå igenom stegen för att ställa in en API-endast Rails-applikation, inklusive installation, konfiguration och några exempel på hur man skapar resurser.
En API-endast applikation är en typ av applikation som inte har någon användargränssnitt (UI) för direkt interaktion. Istället tillhandahåller den en uppsättning API:er (Application Programming Interfaces) som andra applikationer kan använda för att kommunicera med den. Detta gör det möjligt för utvecklare att bygga olika typer av klienter som kan interagera med backend-tjänsten.
Innan vi börjar, se till att du har följande installerat på din dator:
För att skapa en ny Rails-applikation som är API-endast, kan du använda följande kommando:
rails new my_api --api
Detta kommando skapar en ny Rails-applikation med namnet "my_api" och konfigurerar den för att vara en API-endast applikation. Flaggan --api
ser till att Rails genererar en lättare version av applikationen, optimerad för API-användning.
Öppna filen config/database.yml
och konfigurera databasinställningarna för din applikation. Här är ett exempel på hur det kan se ut för PostgreSQL:
default: &default
adapter: postgresql
encoding: unicode
pool: 5
username:
password:
development:
<<: *default
database: my_api_development
test:
<<: *default
database: my_api_test
production:
<<: *default
database: my_api_production
username: my_api
password: <%= ENV['MY_API_DATABASE_PASSWORD'] %>
Byt ut
och
med dina egna databasuppgifter.
Nu när databasen är konfigurerad, kan du skapa den genom att köra följande kommando:
rails db:create
Låt oss skapa en enkel resurs, till exempel en "Post". Du kan göra detta genom att köra följande kommando:
rails generate scaffold Post title:string body:text
Detta kommando genererar en modell, kontroller, vyer och migreringar för "Post"-resursen. Eftersom vi bygger en API-endast applikation kommer vi att fokusera på kontroller och modeller.
För att tillämpa migreringarna och skapa tabellen i databasen, kör:
rails db:migrate
Öppna filen app/controllers/posts_controller.rb
och se till att den ser ut så här:
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
end
private
def post_params
params.require(:post).permit(:title, :body)
end
end
Denna kontroller hanterar alla CRUD-operationer (Create, Read, Update, Delete) för "Post"-resursen och returnerar JSON-svar.
Öppna filen config/routes.rb
och lägg till följande kod för att ställa in rutter för "Post"-resursen:
Rails.application.routes.draw do
resources :posts
end
Nu är det dags att testa vårt API! Du kan använda verktyg som Postman eller curl för att göra förfrågningar till ditt API. Här är några exempel på hur du kan testa det:
GET http://localhost:3000/posts
GET http://localhost:3000/posts/1
POST http://localhost:3000/posts
med JSON-kropp: {"post": {"title": "Min första post", "body": "Detta är innehållet i min första post."}}
PATCH http://localhost:3000/posts/1
med JSON-kropp: {"post": {"title": "Uppdaterad titel"}}
DELETE http://localhost:3000/posts/1
Grattis! Du har nu ställt in en API-endast Rails-applikation. Du kan bygga vidare på detta genom att lägga till autentisering, mer komplexa modeller och relationer, eller till och med integrera med frontend-ramverk som React eller Vue.js. Rails gör det enkelt att bygga kraftfulla API:er, och med lite kreativitet kan du skapa fantastiska applikationer.
Kom ihåg att alltid hålla din kod organiserad och dokumenterad, och ha kul med utvecklingen!
© 2024 RailsInsights. All rights reserved.