Grunderna för REST och RESTful API Development
Webbutvecklare pratar ofta om REST principer och RESTful data arkitektur, eftersom det är en viktig aspekt av modern utveckling, men ibland kan det vara otroligt förvirrande. REST är inte en teknik i sig, utan snarare ett sätt att skapa API med vissa organisatoriska principer. Dessa principer är att vägleda utvecklare och skapa en mer universell miljö för att behandla API-förfrågningar.
I det här inlägget vill jag förklara RESTful utvecklingsmetoder från en fågelperspektiv. Jag vill ta itu med de Vad snarare än på vilket sätt. Även om jag kommer att röra på båda områdena, är det här inlägget skapat för alla som arbetar med webbutveckling, men kan helt enkelt inte förstå begreppet REST API.
REST för webbutvecklare
Förkortningen REST står för Representativ statsöverföring. Det här låter lite förvirrande, och wiki-ingången gör att det låter ännu mer förvirrande. Men det är möjligt att förenkla terminologin.
REST är bara en serie av riktlinjer och arkitektoniska stilar som används för dataöverföring. Det tillämpas vanligtvis på webbapplikationer, men kan också överföra data till programvara.
Akronym API står för Application Programming Interface, som är metoder för ansluta till andra bibliotek eller applikationer. Windows har flera API, och Twitter har även ett webb API, även om de utför olika uppgifter med olika mål.
Kombinerar allt tillsammans, RESTful APIs är API som följer REST-arkitekturen.
Vad exakt är REST-arkitekturen?
Det är här det är svårt att lägga ner specifika uppgifter. Men det finns några arkitektoniska konstanter, såsom:
- Konsistens över hela API: n
- Statslös existens, d.v.s. inga server-sid-sessioner
- Användning av HTTP-statuskoder där så är lämpligt
- Användning av URL-slutpunkter med en logisk hierarki
- Versioner av URL-adressen snarare än i HTTP-rubriker
Det finns inte några alltför specifika riktlinjer som W3C HTML5-specifikationen som kan leda till förvirring och en osäkerhet kring REST-terminologi.
Också den ovanstående listan bör inte betraktas som hårda och snabba regler, även om de är sanna för mest moderna RESTful APIs.
REST är en lättmetodik vilket gör den perfekt för HTTP-data. Det var därför REST blev så populärt på webben, och varför det allmänt anses vara det bästa valet för API-utveckling.
Som Vinay Sahni lägger den, “ett API är en utvecklarens gränssnitt.” Allt ska vara lätt att använda, och ge en bra användarupplevelse. RESTful API: er syftar till att göra just det.
Key Takeaways för RESTful APIs
Dessa tips är i samband med API: er strikt för webbapplikationer. Detta innebär att HTTP är ett krav, och det betyder det ofta API-data finns på en extern server. Låt oss undersöka hur RESTful API fungerar på sidan av API-användaren.
API-användaren är webbutvecklare som kan bygga ett skript som ansluter till en extern API-server, sedan skickas nödvändiga data över HTTP. Utvecklaren kan sedan visa data på deras hemsida utan att ha personlig tillgång till den externa servern (som att dra Twitter-data).
Generellt sett finns det fyra kommandon brukade Öppna RESTful APIs:
SKAFFA SIG
för att hämta ett objektPOSTA
för att skapa ett nytt objektSÄTTA
för att ändra eller ersätta ett objektRADERA
för att ta bort ett objekt
Var och en av dessa metoder bör vara passerade med API-samtalet att berätta för servern vad man ska göra.
Den övervägande delen av web API tillåter bara SKAFFA SIG
förfrågningar att dra data ut från en extern server. Godkännandet är valfritt, men det är en bra ide när man tillåter potentiellt skadliga kommandon som SÄTTA
eller RADERA
.
Men inte många RESTful APIs går till och med här långt. Tänk på Pokéapi som är en gratis Pokémon API-databas. Den är öppen för allmänheten med anständigt prisbegränsning (begränsar användarna till ett visst antal API-förfrågningar över en tidsperiod), men tillåter bara SKAFFA SIG
metod för tillgång till resurser. Detta kan kallas kollokvikt a API endast för förbrukning.
Returtyper är också viktiga, och borde behålla homogenitet för alla resurser. JSON är en populär returtyp med online-specifikationer som förklarar korrekta datastrukturer.
RESTful APIs använder substantiv för API-objekt, och verb för att utföra handlingar på dessa föremål. Godkännandet kan vara en del av detta. Räntebegränsning kan också vara en del av detta. Men ett mycket enkelt API kan komma utan stor oro för användarbegränsningar.
Åtkomst till API-resurser
Offentliga API: er är vanligtvis tillgänglig från direkta webbadresser. Detta betyder URL-strukturen är viktig, och bör endast användas för API-förfrågningar.
Vissa webbadresser kan innehålla en prefixkatalog som / V2 /
för en uppdaterad version 2 av ett tidigare API. Detta är vanligt för utvecklare som inte vill avskriva sitt 1.x API, men vill ändå erbjuda den nyaste strukturen.
Jag njöt verkligen av denna postbeklädnad grundläggande URL-strukturer och exempel från andra tjänster.
Observera att slutpunkten är Returdata kommer att ändras dramatiskt baserat på HTTP-metod. Till exempel, SKAFFA SIG
hämtar innehåll, medan POSTA
skapar nytt innehåll. Förfrågan kan peka på samma ändpunkt, men resultatet kan vara mycket annorlunda.
Om du tittar på exempel på nätet kan du hjälpa dig att förstå begrepp tydligare. Vi såg redan Pokeapi, men här är några andra riktiga API-exempel att läsa
- Reddit API
- GitHub API
- Flickr API
- Pinterest API
Bygg ditt eget API
Processen att bygga ditt eget API bör inte tas lätt men det är inte lika komplicerat som du kanske tror. Det tar en förståelse för API-mönster och bästa praxis att bygga något av verkligt värde.
Varje API måste ansluta till din server att returnera data av något slag. Inte bara behöver du skriva kod för att göra det, men du behöver också formatera returdata. Andra potentiella krav inkluderar autentisering och ränta begränsning, så att bygga ett API är verkligen inte för svag hjärta.
Men låt oss ta en titt på några grundläggande principer av API-arkitekturen.
Bygg ändpunkter
En aspekt av API-utveckling är byggnadens slutpunkter. När skapa resurser du vill använda substantiv, inte verb. Det betyder att API-data ska returnera en person, plats eller sak, oftast är det en sak med specifika attribut (till exempel en tweet och alla dess metadata).
Det kan vara svårt att lära sig att namnge substantiv, men det här är en viktig aspekt av API-utveckling. Förenkling är bäst när det är möjligt.
En stor debatt är singular vs plural substantiv. Om du skapade ett Twitter API kan du först ha objektgruppen först (dvs tweet), så objektobjektet andra (dvs tweet ID).
$ / tweet / 15032934882934 $ / tweets / 15032934882934
I det här fallet skulle jag argumentera att singularformen ser bättre ut. Detta gäller särskilt när endast en resurs returneras. Men det finns inget dokumenterat 100% korrekt svar, så gör det som passar bäst för ditt projekt.
Ange Returtyp
En annan övervägning är returnera typdata. De flesta webbanvändare förväntar sig JSON-innehåll, så det är troligen det bästa alternativet. XML är ett annat val om du vill erbjuda båda. Men JSON är den grundläggande API-returtypen bland webbutvecklare.
Det finns mycket mer som går in i API-utveckling, så jag rekommenderar att du spelar med API: er först. På så vis kan du se hur andra utvecklare bygger sina API, och förhoppningsvis kommer du att bli bekant med de typiska kraven.
Om du bara har börjat, snälla överväga att skumma dessa dev-handledning:
- REST API Tutorial Site
- Skriva en enkel REST API
- Bygga en RESTful webbtjänst
Ytterligare resurser
Det bästa sättet att lära sig webbapputveckling är genom övning. Beviljad teori är alltid värt att studera, eftersom det låter dig prata med utvecklare och förstå hur sakerna fungerar.
Men ett bra ställe att börja med API-utveckling är anslutning till andra API: er först. Lär dig grunderna för klientanslutningar, och därifrån kan du flytta till API-utveckling på serversidan genom att skapa ditt eget API från början.
Om det är ditt mål, vänligen överväga följande resurser för att hjälpa till med din resa.
Böcker
- REST API Design Regelbok
- RESTful Web APIs
- RESTful Web Services Cookbook
- Ostörd REST: En guide till utformning av det perfekta API: et
artiklar
- En nybörjarguide till HTTP och REST
- Skapa ett RESTful API
- RESTful Resource Naming Guide
- Skapa ett REST API med hjälp av MEAN Stack