Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

API's verbinden applicaties via duidelijke protocollen en architecturen. Een API-architectuur is een raamwerk van regels voor het maken van software-interfaces. De regels bepalen hoe gebruikers serverfunctionaliteit kunnen bieden. Het type architectuur bepaalt de regels en structuren die de API beheersen.

Er zijn veel verschillende soorten API-architectuur, van REST tot RPC. Als u meer te weten komt over hun structuur en samenstelling, kunt u er een kiezen voor uw toepassing.

1. REST

REST API's zijn modern en zijn de meest populaire API-architectuur die ontwikkelaars gebruiken. REST (Representational State Transfer) is een architectuur die wordt gebruikt om client-server-applicaties te ontwerpen. Het is geen protocol of standaard, dus je kunt het op verschillende manieren implementeren. Dit aspect vergroot je flexibiliteit als ontwikkelaar.

REST geeft toegang tot de gevraagde gegevens die zijn opgeslagen in een database. U kunt de kern CRUD-functies uitvoeren met een REST API. Wanneer clients content opvragen via een RESTful API, moeten ze de juiste headers en parameters gebruiken. Headers bevatten nuttige metadata om een ​​resource te identificeren, zoals statuscodes en autorisatie.

instagram viewer

De informatie die via HTTP wordt overgedragen, kan in JSON, HTML, XML of platte tekst zijn. JSON is het meest gebruikte bestandsformaat voor REST API's. JSON is taalonafhankelijk en leesbaar voor mensen.

2. ZEEP

Eenvoudig objecttoegangsprotocol (SOAP) is een officieel API-protocol. Het World Wide Web Consortium (W3C) onderhoudt het SOAP-protocol, een van de vroegste API-architecturen. Het ontwerp vergemakkelijkt de communicatie tussen applicaties die zijn gebouwd met verschillende talen en platforms.

Het SOAP-formaat beschrijft een API met behulp van de webservicebeschrijvingstaal (WSDL). Het is geschreven in de uitgebreide opmaaktaal (XML). Het formaat legt ingebouwde nalevingsnormen op die de beveiliging, consistentie, isolatie en duurzaamheid verbeteren. Deze eigenschappen zorgen voor betrouwbare databasetransacties, waardoor SOAP beter geschikt is voor bedrijfsontwikkeling.

Wanneer een gebruiker inhoud opvraagt ​​via een SOAP API, doorloopt deze de standaardlaagprotocollen. Het antwoord is in XML-formaat, dat mens en machine kunnen lezen. Net als REST API's, slaan SOAP API's geen informatie op in de cache. Als u de gegevens later nodig heeft, moet u opnieuw een verzoek indienen.

SOAP ondersteunt zowel stateful als stateless gegevensuitwisseling.

3. GraphQL

GraphQL is een query-taal voor een API. Het is een runtime aan de serverzijde die query's uitvoert op basis van een gedefinieerde set gegevens. GraphQL heeft specifieke use-cases. Dankzij de architectuur kunt u de specifieke informatie declareren die u nodig hebt.

In tegenstelling tot de REST-architectuur, waar HTTP de clientverzoeken en -antwoorden afhandelt, vraagt ​​GraphQL gegevens op met query's. Een GraphQL-service definieert de typen en velden van die typen en biedt vervolgens functies voor elk veld en elk type.

De dienst ontvangt GraphQL-query's valideren en uitvoeren. Eerst wordt een query gecontroleerd om er zeker van te zijn dat deze verwijst naar de gedefinieerde typen en gedefinieerde velden. Vervolgens voert het de bijbehorende functies uit om het gewenste resultaat te produceren.

GraphQL is geweldig voor bepaalde use-cases, zoals het ophalen van gegevens uit meerdere bronnen. U kunt ook het ophalen van gegevens regelen en de bandbreedte regelen voor kleinere apparaten.

4. Apache Kafka

Apache Kafka is een gedistribueerd platform dat het streamen van evenementen ondersteunt. Event streaming is het proces van het in realtime vastleggen van gegevens uit bronnen. De bronnen kunnen databases, servers of softwaretoepassingen zijn. Het Kafka-systeem bestaat uit servers en clients. Communicatie vindt plaats via een TCP-netwerkprotocol.

U kunt het systeem implementeren op hardware, virtuele machines en containers. Dit kan on-premise en in cloudomgevingen. Het Apache Kafka-systeem legt gegevens vast, verwerkt ze en reageert erop in realtime. Het kan de gegevens ook in realtime naar een gewenste bestemming leiden. Kafka legt gegevens vast en slaat deze op in het systeem, die u later kunt ophalen voor gebruik.

Kafka ondersteunt een continue stroom en integratie van gegevens. Dit zorgt ervoor dat informatie op het juiste moment op de juiste plaats is. Evenementstreaming kan van toepassing zijn op veel use-cases die live datastreams nodig hebben. Dit zijn onder meer financiële instellingen, de gezondheidszorg, de overheid, de transportsector en computersoftwarebedrijven.

5. AsyncAPI

AsyncAPI is een open-source initiatief dat helpt bij het bouwen en onderhouden van event-driven architecturen. De specificaties hebben veel gemeen met de OpenAPI-specificaties. AsyncAPI is in wezen een aanpassing van en verbetering van OpenAPI-specificaties, met een paar verschillen.

De AsyncAPI-architectuur brengt een combinatie van REST API's en gebeurtenisgestuurde API's samen. De schema's voor het afhandelen van verzoeken en antwoorden zijn vergelijkbaar met die van gebeurtenis-API's. AsyncAPI biedt specificaties voor het beschrijven en documenteren van asynchrone applicaties in een machineleesbare formaat. Het biedt ook tools zoals codegeneratoren om het voor gebruikers gemakkelijker te maken om ze te implementeren.

AsyncAPI verbetert de huidige staat van Event-Driven architectuur (EDA). Het doel is om het werken met EDA's gemakkelijker te maken dan met REST API's. Het AsyncAPI-initiatief biedt documentatie en code die het beheer van gebeurtenissen ondersteunen. De meeste processen die in REST API's worden gebruikt, zijn van toepassing op gebeurtenisgestuurde/asynchrone API's.

Het is essentieel om de AsyncAPI-specificatie te gebruiken om gebeurtenisgestuurde systemen te documenteren. Het regelt en handhaaft consistentie en efficiëntie tussen teams die werken aan door gebeurtenissen gestuurde projecten.

6. Procedureoproep op afstand (RPC)

RPC is een softwarecommunicatieprotocol dat communicatie tussen verschillende programma's op een netwerk mogelijk maakt. Een programma kan bijvoorbeeld informatie opvragen bij een andere computer op het netwerk. Het hoeft zich niet te houden aan netwerkprotocollen. U kunt RPC gebruiken om processen op systemen op afstand aan te roepen, net als op het lokale systeem.

RPC werkt volgens het client-servermodel. Het clientprogramma vraagt ​​en het serverprogramma antwoordt met een service. RPC's werken synchroon. Wanneer een programma een verzoek verzendt, blijft het opgeschort totdat het een antwoord van de server ontvangt.

RPC's zijn het beste voor gedistribueerde systemen. Ze zijn het beste voor op commando gebaseerde systemen en hebben lichtgewicht payloads die de prestaties verbeteren.

Hoe u de juiste API-architectuur kiest

De juiste API-architectuur hangt af van uw use case. De architectuur bepaalt de methodologie om de API te ontwikkelen en hoe deze zal werken. Het architecturale ontwerp van de API definieert de componenten en interacties.

Neem architecturale beslissingen voordat u de API ontwerpt en ontwikkelt. Bepaal de technische vereisten van de API, de laag, het levenscyclusbeheer en de beveiliging. API-architectuurontwerpen bevatten structurele lagen. De lagen begeleiden de ontwikkeling en zorgen ervoor dat de gemaakte API het beoogde doel dient.