In der Go-Sprache ist Data Transfer Object (DTO) ein sehr verbreitetes Muster. Es wird häufig in der Webentwicklung verwendet, um eine Klassenkonvertierung zwischen Anfragen und Antworten durchzuführen. Obwohl die Go-Sprache eine typsichere Sprache ist, müssen wir beim Umgang mit JSON und anderen externen Datenformaten eine Typkonvertierung durchführen. In diesem Artikel werden wir uns mit der Handhabung von DTO-Konvertierungen in der Go-Sprache befassen.
DTO-Hintergrund
Data Transfer Object (DTO) ist ein Entwurfsmuster, das verwendet wird, um die Daten zu kapseln, die in einem Objekt übertragen werden müssen. Es kann komplexe Objekte vereinfachen und so Anwendungen einfacher und leichter zu warten machen. Es kann Geschäftsobjekte von der technischen Implementierung trennen und die Sicherheit und Flexibilität des Programms erhöhen.
Geschäftsobjekte haben normalerweise eine Struktur, die der Datenbank zugeordnet ist, aber bei bestimmten Vorgängen wie Aktualisierungen oder Abfragen wird nur ein Teil des Objekts übergeben. Hier kommt DTO ins Spiel. Sie vereinfachen Objekte und reduzieren die an den Client oder Server übergebene Datenmenge. Es stellt außerdem die korrekte Datentypkonvertierung vom Client zum Server sicher.
DTO-Konvertierung mit Go
Um die DTO-Konvertierung in Go zu nutzen, muss die entsprechende Datenstruktur erstellt, geladen und verarbeitet werden. Im Folgenden erstellen wir ein Beispiel, um die Verwendung der DTO-Konvertierung zu demonstrieren.
Zunächst erstellen wir zwei Datenstrukturen. Stellt die Struktur des Benutzers (User) und des DTO (UserDTO) dar. In diesem Beispiel gehen wir davon aus, dass der Client ein JSON sendet, das den Benutzernamen und das Alter enthält:
type User struct { Name string Age int } type UserDTO struct { Name string Age string }
Wir können sehen, dass das Alter im UserDTO eine Zeichenfolge ist, da das an den Client zurückgegebene oder vom Client empfangene Alter ein Zeichenkettenformat sein muss.
Als nächstes erstellen wir eine Funktion, die eine Struktur vom Typ User in eine Struktur vom Typ UserDTO konvertiert:
func ConvertToDTO(user User) UserDTO { return UserDTO{ Name: user.Name, Age: strconv.Itoa(user.Age), // int to string } }
Diese Funktion erstellt einfach eine neue UserDTO-Struktur, kopiert die Name-Eigenschaft und konvertiert die Age-Eigenschaft in einen String. Dazu haben wir die Bibliothek strconv.Itoa verwendet.
Wenn Sie ein Webframework wie Echo oder Gin verwenden, können Sie diese Funktion bei der Bearbeitung von API-Anfragen verwenden.
Um zu demonstrieren, wie man UserDTO zurück in eine User-Struktur konvertiert, erstellen wir eine umgekehrte Funktion ConvertToUser:
func ConvertToUser(userDto UserDTO) User { age, _ := strconv.Atoi(userDto.Age) // string to int return User{ Name: userDto.Name, Age: age, } }
Diese Funktion führt eine umgekehrte Konvertierung durch, das heißt, sie konvertiert die UserDTO-Struktur in eine User-Struktur. Es wandelt das Altersattribut erneut von einer Zeichenfolge in eine Ganzzahl um.
Da wir nun die Konvertierung des DTO abgeschlossen haben, können wir diese Funktionen nutzen. Wir haben es mit dem folgenden Code getestet:
func main() { user := User{ Name: "Alice", Age: 25, } userDto := ConvertToDTO(user) fmt.Println(userDto.Name, userDto.Age) user2 := ConvertToUser(userDto) fmt.Println(user2.Name, user2.Age) }
In diesem Beispiel haben wir einen Benutzer namens Alice im Alter von 25 Jahren erstellt. Wir konvertieren es in ein DTO und dann zurück in den Benutzertyp.
Hier ist die endgültige Ausgabe:
Alice 25 Alice 25
Sie haben jetzt den Prozess der DTO-Konvertierung mit Go abgeschlossen!
Fazit
Data Transfer Object (DTO) ist ein beliebtes Entwurfsmuster, das zum Kapseln von Daten verwendet wird, die in einem Objekt übertragen werden müssen. Wenn wir externe Datenformate wie JSON oder XML in der Go-Sprache verarbeiten müssen, müssen wir eine Datentypkonvertierung durchführen. In diesem Artikel haben wir uns die DTO-Konvertierung mit Go angesehen und gezeigt, wie man Daten in einen bestimmten DTO-Typ konvertiert. Ich hoffe, dass dieser Artikel Ihnen dabei helfen kann, die DTO-Konvertierung in der zukünftigen Entwicklung besser zu bewältigen.
Das obige ist der detaillierte Inhalt vongolang dto-Konvertierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!