API'er forbinder applikationer gennem klare protokoller og arkitekturer. En API-arkitektur er en ramme af regler for at skabe softwaregrænseflader. Reglerne bestemmer, hvordan serverfunktionalitet skal leveres til brugere. Arkitekturtypen bestemmer de regler og strukturer, der styrer API'en.
Der er mange forskellige typer API-arkitektur, fra REST til RPC. At lære om deres struktur og sammensætning vil hjælpe dig med at vælge en til din ansøgning.
1. HVILE
REST API'er er moderne og er den mest populære API-arkitektur, som udviklere bruger. HVILE (repræsentativ tilstandsoverførsel) er en arkitektur, der bruges til at designe klient-server-applikationer. Det er ikke en protokol eller standard, så du kan implementere den på forskellige måder. Dette aspekt øger din fleksibilitet som udvikler.
REST giver adgang til de anmodede data gemt i en database. Du kan udføre CRUD-kernefunktionerne med en REST API. Når klienter anmoder om indhold via en RESTful API, skal de bruge de rigtige overskrifter og parametre. Overskrifter indeholder nyttige metadata til at identificere en ressource, såsom statuskoder og autorisation.
De oplysninger, der overføres via HTTP, kan være i JSON, HTML, XML eller almindelig tekst. JSON er det mest brugte filformat til REST API'er. JSON er sprogagnostisk og kan læses af mennesker.
2. SÆBE
Simpel objektadgangsprotokol (SOAP) er en officiel API-protokol. World Wide Web Consortium (W3C) opretholder SOAP-protokollen, som er en af de tidligste API-arkitekturer. Dens design letter kommunikationen mellem applikationer bygget med forskellige sprog og platforme.
SOAP-formatet beskriver en API, der bruger webservice description language (WSDL). Det er skrevet i det omfattende markupsprog (XML). Formatet pålægger indbyggede overholdelsesstandarder, der øger sikkerhed, konsistens, isolation og holdbarhed. Disse egenskaber sikrer pålidelige databasetransaktioner, hvilket gør SOAP bedre til virksomhedsudvikling.
Når en bruger anmoder om indhold gennem en SOAP API, går det gennem standardlagprotokollerne. Svaret er i XML-format, som mennesker og maskiner kan læse. Ligesom REST API'er, cacher /lagrer SOAP API'er ikke oplysninger. Hvis du har brug for dataene senere, skal du lave en ny anmodning.
SOAP understøtter både statslige og statsløse dataudvekslinger.
3. GraphQL
GraphQL er et forespørgselssprog for en API. Det er en server-side runtime, der udfører forespørgsler baseret på et defineret sæt data. GraphQL har specifikke use cases. Dens arkitektur giver dig mulighed for at angive de specifikke oplysninger, du har brug for.
I modsætning til i REST-arkitektur, hvor HTTP håndterer klientanmodninger og -svar, anmoder GraphQL om data med forespørgsler. En GraphQL-tjeneste definerer typerne og felterne for disse typer og giver derefter funktioner for hvert felt og type.
Tjenesten modtager GraphQL-forespørgsler at validere og udføre. Først tjekker den en forespørgsel for at sikre, at den refererer til de definerede typer og felter. Derefter kører den de tilknyttede funktioner for at producere det ønskede resultat.
GraphQL er fantastisk til visse brugstilfælde som at hente data fra flere kilder. Du kan også styre datahentning og regulere båndbredden for mindre enheder.
4. Apache Kafka
Apache Kafka er en distribueret platform, der understøtter begivenhedsstreaming. Hændelsesstreaming er processen med at fange data i realtid fra kilder. Kilderne kan være databaser, servere eller softwareapplikationer. Kafka-systemet består af servere og klienter. Kommunikation sker gennem en TCP-netværksprotokol.
Du kan implementere systemet på hardware, virtuelle maskiner og containere. Du kan gøre dette on-premise og i cloud-miljøer. Apache Kafka-systemet fanger data, processer og reagerer på det i realtid. Det kan også dirigere dataene til en foretrukken destination i realtid. Kafka fanger og gemmer data i systemet, som du kan hente senere til brug.
Kafka understøtter et kontinuerligt flow og integration af data. Dette sikrer, at information er på det rigtige sted, på det rigtige tidspunkt. Hændelsesstreaming kan gælde for mange use cases, der har brug for live datastreams. Disse omfatter finansielle institutioner, sundhedspleje, regering, transportindustrien og computersoftwarevirksomheder.
5. AsyncAPI
AsyncAPI er et open source-initiativ, der hjælper med at bygge og vedligeholde begivenhedsdrevne arkitekturer. Dens specifikationer har mange ting til fælles med OpenAPI-specifikationerne. AsyncAPI er i det væsentlige en tilpasning fra og forbedring af OpenAPI-specifikationer, med nogle få forskelle.
AsyncAPI-arkitekturen samler en blanding af REST API'er og hændelsesdrevne API'er. Dens skemaer til håndtering af anmodninger og svar er svarende til begivenheds-API'er. AsyncAPI giver specifikationer til at beskrive og dokumentere asynkrone applikationer i en maskinlæsbar format. Det giver også værktøjer som kodegeneratorer for at gøre det nemmere for brugerne at implementere dem.
AsyncAPI forbedrer den aktuelle tilstand af begivenhedsdrevet arkitektur (EDA). Målet er at gøre det nemmere at arbejde med EDA'er, som det er med REST API'er. AsyncAPI-initiativet leverer dokumentation og kode, der understøtter event management. Størstedelen af de processer, der bruges i REST API'er, gælder for hændelsesdrevne/asynkrone API'er.
Det er afgørende at bruge AsyncAPI-specifikationen til at dokumentere hændelsesdrevne systemer. Det styrer og vedligeholder konsistens og effektivitet på tværs af teams, der arbejder på begivenhedsdrevne projekter.
6. Remote Procedure Call (RPC)
RPC er en softwarekommunikationsprotokol, der tillader kommunikation mellem forskellige programmer på et netværk. For eksempel kan et program anmode om information fra en anden computer på netværket. Det behøver ikke at overholde netværksprotokoller. Du kan bruge RPC til at kalde processer på fjernsystemer ligesom på det lokale system.
RPC fungerer på klient-server-modellen. Klientprogrammet anmoder, og serverprogrammet svarer med en tjeneste. RPC'er fungerer på synkronisering. Når et program sender en anmodning, forbliver det suspenderet, indtil det modtager et svar fra serveren.
RPC'er er bedst til distribuerede systemer. De er bedst til kommandobaserede systemer og har lette nyttelaster, der øger ydeevnen.
Sådan vælger du den rigtige API-arkitektur
Den rigtige API-arkitektur afhænger af din use case. Arkitekturen bestemmer metoden til at udvikle API'en, og hvordan den vil køre. Det arkitektoniske design af API'en definerer dets komponenter og interaktioner.
Træf arkitektoniske beslutninger, før du designer og udvikler API'en. Bestem de tekniske krav til API'en, niveauet, livscyklusstyring og sikkerhed. API-arkitekturdesign indeholder strukturelle lag. Lagene styrer udviklingen og sikrer, at den oprettede API tjener det tilsigtede formål.