Tilbage til Blog
Blog

Indstiller du REST API-slutpunkter korrekt?

Apr 12, 2023·3 min read·Palomi Jain
#API#API Development#Backend#Backend Development
Indstiller du REST API-slutpunkter korrekt?

Indstiller du REST API-endpoints korrekt?

Indstiller du dine API-endpoints rigtigt? Det er ofte, når vi indstiller endpoints til vores API'er, at vi støder på situationer, hvor vi ikke er sikre på, om vi skal skrive i flertal eller ental. Skal vi bruge understreg eller bindestreg? Hvordan skal vi angive ID'er? For et API, der opretter en ressource, skal vi bruge /resource/create? Og meget mere. Så lad os dykke ned i navngivningskonventioner for REST API'er. Her dækker vi:

  • Endpoints
  • Metoder
  • Versionering

Endpoints

Lad os starte med at gennemgå nogle REST API-navngivningskonventioner.

Ressourcer som substantiver

REST API'er bør give dig mulighed for at manipulere en ressource ved hjælp af en af de vigtigste HTTP-metoder. REST URI'erne bør ikke angive nogen form for CRUD-operationer. De bør referere til en ressource i stedet for en handling/verb. Når det er muligt, skal du kun bruge flertal af substantiver, medmindre de er singleton-ressourcer.

Gode eksempler:

  • https://api.website.com/v1/store/products
  • https://api.website.com/v1/store/customers
  • https://api.website.com/v1/store/discounts

Dårlige eksempler:

Hierarki

Hierarkiet mellem ressourcer og samlinger defineres ved brugen af skråstreger.

"Som med alt inden for håndværket softwareudvikling er navngivning kritisk for succes"

Godt eksempel:

  • https://api.website.com/v1/item/store

Dårligt eksempel:

  • https://api.website.com/v1/store/items

Bindestreg

Det er bredt accepteret, at læsning af bindestreg ( first-name ) er klarere og mere brugervenlig end læsning af understreg ( first_name ). Så når en REST API-endpoint indeholder flere ord, er det altid bedre at bruge bindestreg i stedet for understreg. Plus der er en vinkel her fra et SEO-perspektiv også. Det anbefales at bruge bindestreg, da det hjælper bots til at identificere begreberne i URL'en lettere. Og en understreg mellem to ord betragtes som helhed som et ord, hvorimod brugen af bindestreg anses for at være to separate ord.

Godt eksempel:

  • https://api.website.com/v1/store/inventory-management/active-orders

Dårligt eksempel

  • https://api.website.com/v1/store/inventory_management/active_orders

Metoder

Vi ved nu, at vi ikke skal bruge verber i vores REST API-endpoints, men det rejser spørgsmålet om hvordan man angiver verbet. Til dette har vi HTTP-metoder til at redde. HTTP-metoder er verberne, som angiver den slags operation, som API'et kan være ved at udføre.

HTTP-metoder:

  • GET svarer til "Læs"-operationen af en ressource eller en samling.
  • POST svarer til "Opret"-operationen af en ressource eller en samling.
  • PUT svarer til "Opdater"-operationen af en ressource eller en samling.
  • DELETE svarer til "Slet"-operationen af en ressource eller en samling.

Der er i alt 39 HTTP-metoder, men GET, POST, PUT & DELETE er de mest almindeligt anvendte og grundlæggende metoder. Vi vil dække alle HTTP-metoderne og deres use cases i en separat blog.

Versionering

Det er altid bedre at versionere dine API'er. De samme URL'er kan forbruges uden at skulle foretage større ændringer i REST API-endpoints. API-endpoints bør aldrig ugyldiges, da dette kan få uforudsete konsekvenser for de applikationer, der forbruger dem.

Eksempler:

  • https://api.website.com/v1/store/items
  • https://api.webiste.com/v2/store/employees

Vigtige punkter

  • Brug substantiver til at repræsentere ressourcer.
  • Undgå at bruge verber i REST API-endpoints.
  • Brug ikke understre (`_`) i et endpoint. Brug i stedet bindestreg (`-`).
  • Brug forespørgsler til at filtrere, sortere eller begrænse en API-samling.
  • Tilføj aldrig filtyper til URL'erne. Hvis du vil angive typen af indhold, skal du bruge `Content-Type`-headeren.
  • Foretrække altid at bruge små bogstaver i REST API-endpoints.
  • Brug ikke efterfølgende skråstreger (`/`) i REST API-endpoints. De tilføjer ingen semantisk værdi og kan være forvirrende.
  • Vælg simple navne. Hvis det gøres korrekt, vil API-endpoints blive meget lette for enhver udvikler at huske eller gætte.