Rails Insights

Att Ställa In en API-Endast Rails Applikation

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.

Vad är en API-Endast Applikation?

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.

Förutsättningar

Innan vi börjar, se till att du har följande installerat på din dator:

  • Ruby (version 2.7 eller senare)
  • Rails (version 6 eller senare)
  • PostgreSQL (eller en annan databas som du föredrar)
  • Node.js (för att hantera JavaScript-paket)

Steg för att Ställa In en API-Endast Rails Applikation

1. Skapa en Ny Rails Applikation

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.

2. Konfigurera Databasen

Ö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.

3. Skapa Databas

Nu när databasen är konfigurerad, kan du skapa den genom att köra följande kommando:

rails db:create

4. Skapa en Resurs

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.

5. Migrera Databasen

För att tillämpa migreringarna och skapa tabellen i databasen, kör:

rails db:migrate

6. Konfigurera Kontroller

Ö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.

7. Ställ in Rutter

Ö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

8. Testa API:et

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:

  • För att hämta alla inlägg: GET http://localhost:3000/posts
  • För att hämta ett specifikt inlägg: GET http://localhost:3000/posts/1
  • För att skapa ett nytt inlägg: POST http://localhost:3000/posts med JSON-kropp: {"post": {"title": "Min första post", "body": "Detta är innehållet i min första post."}}
  • För att uppdatera ett inlägg: PATCH http://localhost:3000/posts/1 med JSON-kropp: {"post": {"title": "Uppdaterad titel"}}
  • För att ta bort ett inlägg: DELETE http://localhost:3000/posts/1

Avslutning

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!

Published: August 22, 2024

© 2024 RailsInsights. All rights reserved.