What is a CRUD app?

CRUD-operationer i REST API'er: En Komplet Guide

30/01/2004

Rating: 4.52 (14566 votes)

I den moderne digitale verden fungerer API'er (Application Programming Interfaces) som den lim, der holder softwareapplikationer sammen. De muliggør gnidningsfri kommunikation mellem forskellige systemdele, uanset om det er en mobilapp, der taler med en server, eller to forskellige webtjenester, der udveksler data. Hvis du arbejder med webudvikling, har du utvivlsomt hørt om RESTful API'er og de grundlæggende operationer, der driver dem: CRUD. At forstå disse operationer er ikke bare teknisk viden; det er fundamentet for at designe robuste, intuitive og skalerbare systemer. Denne artikel vil dykke ned i, hvad CRUD er, hvordan det mappes til HTTP-metoder, og hvilke bedste praksisser du bør følge for at mestre datamanipulation i dine applikationer.

Which API maps CRUD operations to HTTP methods?
The REST API maps CRUD operations to HTTP methods. The following table specifies which HTTP method maps to which operation. Resources are created by sending HTTP POST requests to the API. The type of resource is determined by the URL of the request. The body of the request should contain a JSON object describing the resource to create.
Indholdsfortegnelse

Hvad er CRUD?

CRUD er et akronym, der står for de fire grundlæggende funktioner inden for vedvarende datalagring og applikationsudvikling. Disse fire operationer udgør kernen i, hvordan vi interagerer med data i stort set alle softwaresystemer, fra en simpel kontaktbog på din telefon til komplekse enterprise-databaser.

  • Create (Opret): Denne operation bruges til at tilføje nye data. I en database svarer dette til at indsætte en ny række i en tabel.
  • Read (Læs): Denne operation bruges til at hente eller læse data. Det kan være at hente en enkelt post, en liste af poster eller at søge efter specifikke data baseret på kriterier.
  • Update (Opdater): Denne operation bruges til at ændre eksisterende data. Hvis en brugers e-mailadresse ændres, er det en opdateringshandling.
  • Delete (Slet): Denne operation bruges til at fjerne data permanent.

Disse fire handlinger er så fundamentale, at de danner grundlaget for de fleste brugergrænseflader og databaseinteraktioner. Når du tilføjer en ny ven på et socialt medie, opretter du data. Når du scroller gennem dit feed, læser du data. Når du redigerer din profil, opdaterer du data. Og når du fjerner et gammelt opslag, sletter du data.

Koblingen mellem CRUD og HTTP-metoder i REST API'er

Et RESTful API bruger standard HTTP-protokollen til kommunikation. Skønheden ved REST-arkitekturen er, at den mapper de abstrakte CRUD-operationer direkte til specifikke HTTP-metoder. Dette skaber en forudsigelig og standardiseret måde at interagere med API'et på, hvilket gør det lettere for udviklere at forstå og bruge.

Create → POST

Når du vil oprette en ny ressource, bruger du POST-metoden. Du sender dataene for den nye ressource i anmodningens krop (request body), typisk i JSON-format. Serveren er ansvarlig for at oprette ressourcen og tildele den et unikt ID. For eksempel, for at tilføje et nyt produkt til en webshop, kan du sende en POST-anmodning til et endepunkt som /api/v1/produkter.

How do RESTful API operations align with HTTP methods?
In RESTful API design, these operations directly correspond to HTTP methods, providing a consistent structure for resource manipulation. Here’s how they align: Operation: Add new resources. Operation: Retrieve or view existing resources. Operation: Modify existing resources. Operation: Remove resources.

Read → GET

For at hente data bruges GET-metoden. Dette er den mest almindelige HTTP-metode. Den er sikker og idempotent, hvilket betyder, at den ikke ændrer data på serveren og kan kaldes flere gange uden bivirkninger. Du kan bruge GET til at hente en liste af ressourcer (f.eks. GET /api/v1/produkter) eller en specifik ressource ved at angive dens ID (f.eks. GET /api/v1/produkter/123).

Update → PUT / PATCH

Når eksisterende data skal opdateres, har du to muligheder: PUT og PATCH.

  • PUT: Bruges til at erstatte en hel ressource. Du skal sende hele objektet, inklusive de uændrede felter. Hvis du udelader et felt, kan serveren tolke det som en anmodning om at fjerne det eller sætte det til en standardværdi.
  • PATCH: Bruges til at anvende en delvis opdatering. Du sender kun de felter, der skal ændres. Dette er ofte mere effektivt, da det reducerer mængden af data, der sendes over netværket. For eksempel, hvis du kun vil opdatere prisen på et produkt, er PATCH det ideelle valg.

Delete → DELETE

Som navnet antyder, bruges DELETE-metoden til at fjerne en ressource. Ligesom GET-anmodninger til en specifik ressource, angiver du ID'et på den ressource, du vil slette, i URL'en (f.eks. DELETE /api/v1/produkter/123).

Sammenligningstabel: CRUD, HTTP og SQL

For at give et fuldt overblik er her en tabel, der viser sammenhængen mellem CRUD-operationer, HTTP-metoder og de tilsvarende SQL-kommandoer, der typisk udføres i databasen.

CRUD OperationHTTP MetodeSQL KommandoFormål
Create (Opret)POSTINSERTTilføjer en ny række data.
Read (Læs)GETSELECTHenter eksisterende data.
Update (Opdater)PUT / PATCHUPDATEÆndrer eksisterende data.
Delete (Slet)DELETEDELETEFjerner eksisterende data.

Bedste Praksis for CRUD-operationer

At kende tilknytningen er én ting, men at implementere den korrekt er en anden. Her er nogle bedste praksisser, der sikrer, at dit API er pålideligt, sikkert og let at vedligeholde.

What is a CRUD operation?
The Data Lifecycle The CRUD operations also depict the typical data lifecycle in a computing system. The computing system creates a piece of data once, reads and updates it one or more times as necessary, and finally, deletes the data when it is no longer required.

Brug de korrekte HTTP-statuskoder

Statuskoder er afgørende for at give klienten klar feedback om resultatet af en anmodning. At bruge de rigtige koder gør dit API mere forudsigeligt.

  • 201 Created: Returneres efter en vellykket POST-anmodning. Det er god praksis også at returnere en reference til den nye ressource i `Location`-headeren.
  • 200 OK: Den generelle succes-kode for vellykkede GET-, PUT- og PATCH-anmodninger.
  • 204 No Content: Returneres efter en vellykket DELETE-anmodning. Da der ikke er noget indhold at returnere, er denne kode perfekt.
  • 404 Not Found: Bruges, når klienten anmoder om en ressource, der ikke eksisterer (f.eks. GET, PUT, eller DELETE på et ukendt ID).
  • 400 Bad Request: Bruges, når klientens anmodning er ugyldig, f.eks. på grund af manglende eller forkert formaterede data.

Implementer grundig datavalidering

Stol aldrig på data, der kommer fra klienten. Datavalidering på serversiden er afgørende for at forhindre fejl og sikkerhedshuller. Kontroller, at alle påkrævede felter er til stede, at datatyperne er korrekte (f.eks. at en pris er et tal), og at værdierne er inden for acceptable rammer. Dette beskytter din database mod korrupte data og forhindrer uventede fejl i din applikation.

Sørg for meningsfuld fejlhåndtering

Når noget går galt, er en generisk `500 Internal Server Error`-besked ikke særlig hjælpsom for udvikleren, der bruger dit API. Giv i stedet meningsfulde fejlbeskeder i JSON-format, der forklarer, hvad der gik galt. For eksempel, ved en valideringsfejl, kan du returnere en liste over de specifikke felter, der var ugyldige, og hvorfor.

Sikkerhed først: Autentificering og Autorisering

Ikke alle brugere skal have lov til at udføre alle handlinger. Beskyt dine endepunkter, især dem der ændrer data (POST, PUT, PATCH, DELETE). Implementer autentificering for at verificere, hvem brugeren er, og autorisering for at kontrollere, om de har de nødvendige rettigheder til at udføre den anmodede handling. For eksempel skal kun en administrator måske have lov til at slette produkter.

What is a CRUD app?

Ofte Stillede Spørgsmål (FAQ)

Hvad er den præcise forskel på PUT og PATCH?

Den primære forskel ligger i, hvordan de opdaterer en ressource. PUT erstatter hele ressourcen. Hvis du sender et objekt med PUT, forventer serveren, at det er den komplette, nye version af ressourcen. PATCH anvender en delvis opdatering. Du sender kun de felter, du ønsker at ændre. PATCH er derfor mere netværkseffektivt og mindre fejlbehæftet, hvis flere klienter opdaterer den samme ressource samtidigt.

Hvorfor kan jeg ikke bare bruge GET til at slette en ressource?

HTTP-metoden GET er defineret som en sikker metode, hvilket betyder, at den ikke bør have bivirkninger eller ændre serverens tilstand. Søgemaskiner og webcrawlere følger links og udfører GET-anmodninger. Hvis du tillod, at en GET-anmodning kunne slette data, kunne en søgemaskine ved et uheld slette hele din database. Handlinger, der ændrer data, skal altid udføres med POST, PUT, PATCH eller DELETE.

Hvilken HTTP-statuskode skal jeg returnere efter en vellykket DELETE-anmodning?

Den mest korrekte statuskode er 204 No Content. Dette signalerer til klienten, at anmodningen blev behandlet succesfuldt, og at der ikke er noget indhold at returnere i svar-kroppen. Nogle API'er returnerer 200 OK med en bekræftelsesmeddelelse, men 204 er semantisk mere præcis.

Konklusion

CRUD-operationerne er de fundamentale byggeklodser for næsten enhver applikation, der håndterer data. I konteksten af RESTful API'er giver den klare mapping til HTTP-metoderne POST, GET, PUT/PATCH og DELETE en standardiseret og intuitiv måde at designe og interagere med webtjenester på. Ved at mestre disse koncepter og følge bedste praksis for statuskoder, validering, fejlhåndtering og sikkerhed, kan du bygge robuste, skalerbare og vedligeholdelsesvenlige API'er, der danner rygraden i moderne softwareløsninger.

Hvis du vil læse andre artikler, der ligner CRUD-operationer i REST API'er: En Komplet Guide, kan du besøge kategorien Teknologi.

Go up