© S&S Media, © https://blog.golang.org/gopher, © Renee French
Entwickler Magazin
Entspannte Schnittstellen für Gopher

RESTful APIs in Go

Alle bauen APIs. Grob geschätzt bestehen 80 Prozent der heute entwickelten Anwendungen im Kern aus einer oder mehreren serverseitigen Komponenten, die Geschäftslogik kapseln und diese ihren Clients über ein RESTful API zur Verfügung stellen. Ist das REST-Paradigma einmal verstanden, dann sind REST-APIs klar und einfach zu benutzen.

Ralf Wirdemann


Video: Should I stay or should I "Go"

Go ist eine einfache, statisch typisierte, kompilierte und performante Programmiersprache, die sich hervorragend für die Entwicklung von REST-APIs eignet. Eigenschaften wie leichte Erlernbarkeit, ein simples und leistungsfähiges Concurrency-Modell, sehr guter HTTP-, REST- und JSON-Support, Cross-Plattform-Fähigkeit sowie einfaches Deployment zeichnen Go aus. Dieser Beitrag führt in die wesentlichen Aspekte der REST-Entwicklung in Go anhand eines einfachen Beispiels ein. Der Artikel verzichtet dabei auf eine explizite Einführung der Programmiersprache Go. Stattdessen werden Go-spezifische Konzepte erklärt, wenn sie im Kontext des Beispiels zum Einsatz kommen.

REST am fachlichen Beispiel

Den fachlichen Hintergrund des Beispiel-API bildet ein einfaches Shopsystem. Das Domainmodell des Shops besteht aus den Entitäten Customer, Order und Product. Abbildung 1 zeigt deren Beziehungen, URIs sowie JSON-Repräsentationen.

Abb. 1: Shop als fachliches Beispiel

Eine Ressource im REST-Kontext ist eine Abstraktion, die ein „Ding“ referenziert. Dieses Ding kann z. B. ein einzelner Kunde, eine Liste aller Kunden oder auch eine Liste von Kunden mit dem Namen Meyer sein. Ressourcen werden über URIs identifiziert. So identifiziert der URI /customers die Liste aller Kunden und die Ressource /customer/1 den Kunden mit der ID 1. Neben einer Identität besitzen Ressourcen eine oder mehrere Repräsentationen. Im Beispiel werden Ressourcen in JSON repräsentiert und in diesem Format zwischen Client und Server übertragen.

Beziehungen zwischen Ressourcen werden über Links beschrieben. Für HTML-repräsentierte Ressourcen wird häufig das HTML-Element genutzt, während in JSON-Repräsentationen verlinkte Ressourcen als Listen von IDs beschrieben werden.

Das Anfragen, Anlegen, Verändern und Löschen von Ressourcen erfolgt über die HTTP-Methoden GET, POST, PUT und DELETE, im REST-Kontext auch als HTTP-Verben bezeichnet. So liefert GET /customers/1/orders/9 die Bestellung mit der ID 9, während DELETE /customers/1/orders/9 diese Bestellung löscht.

Das Shopbeispiel ist relativ einfach gehalten und kann entgegen gängigen Trends durchaus als monolithisches API entwickelt werden. Aus didaktischen Gründen entscheiden wir uns dennoch für eine Microservices-Architektur, sodass wir den Artikelfokus leichter auf den Catalog-Teil des API legen können.

Abb. 2: Microservices-Architektur des Shopsystems

Hello net/http

Dreh- und Angelpunkt der REST-Programmierung in ...

Entwickler Magazin
Entspannte Schnittstellen für Gopher

RESTful APIs in Go

Alle bauen APIs. Grob geschätzt bestehen 80 Prozent der heute entwickelten Anwendungen im Kern aus einer oder mehreren serverseitigen Komponenten, die Geschäftslogik kapseln und diese ihren Clients über ein RESTful API zur Verfügung stellen. Ist das REST-Paradigma einmal verstanden, dann sind REST-APIs klar und einfach zu benutzen.

Ralf Wirdemann


Video: Should I stay or should I "Go"

Go ist eine einfache, statisch typisierte, kompilierte und performante Programmiersprache, die sich hervorragend für die Entwicklung von REST-APIs eignet. Eigenschaften wie leichte Erlernbarkeit, ein simples und leistungsfähiges Concurrency-Modell, sehr guter HTTP-, REST- und JSON-Support, Cross-Plattform-Fähigkeit sowie einfaches Deployment zeichnen Go aus. Dieser Beitrag führt in die wesentlichen Aspekte der REST-Entwicklung in Go anhand eines einfachen Beispiels ein. Der Artikel verzichtet dabei auf eine explizite Einführung der Programmiersprache Go. Stattdessen werden Go-spezifische Konzepte erklärt, wenn sie im Kontext des Beispiels zum Einsatz kommen.

REST am fachlichen Beispiel

Den fachlichen Hintergrund des Beispiel-API bildet ein einfaches Shopsystem. Das Domainmodell des Shops besteht aus den Entitäten Customer, Order und Product. Abbildung 1 zeigt deren Beziehungen, URIs sowie JSON-Repräsentationen.

Abb. 1: Shop als fachliches Beispiel

Eine Ressource im REST-Kontext ist eine Abstraktion, die ein „Ding“ referenziert. Dieses Ding kann z. B. ein einzelner Kunde, eine Liste aller Kunden oder auch eine Liste von Kunden mit dem Namen Meyer sein. Ressourcen werden über URIs identifiziert. So identifiziert der URI /customers die Liste aller Kunden und die Ressource /customer/1 den Kunden mit der ID 1. Neben einer Identität besitzen Ressourcen eine oder mehrere Repräsentationen. Im Beispiel werden Ressourcen in JSON repräsentiert und in diesem Format zwischen Client und Server übertragen.

Beziehungen zwischen Ressourcen werden über Links beschrieben. Für HTML-repräsentierte Ressourcen wird häufig das HTML-Element genutzt, während in JSON-Repräsentationen verlinkte Ressourcen als Listen von IDs beschrieben werden.

Das Anfragen, Anlegen, Verändern und Löschen von Ressourcen erfolgt über die HTTP-Methoden GET, POST, PUT und DELETE, im REST-Kontext auch als HTTP-Verben bezeichnet. So liefert GET /customers/1/orders/9 die Bestellung mit der ID 9, während DELETE /customers/1/orders/9 diese Bestellung löscht.

Das Shopbeispiel ist relativ einfach gehalten und kann entgegen gängigen Trends durchaus als monolithisches API entwickelt werden. Aus didaktischen Gründen entscheiden wir uns dennoch für eine Microservices-Architektur, sodass wir den Artikelfokus leichter auf den Catalog-Teil des API legen können.

Abb. 2: Microservices-Architektur des Shopsystems

Hello net/http

Dreh- und Angelpunkt der REST-Programmierung in ...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang