Maison >développement back-end >Golang >conversion golang dto

conversion golang dto

WBOY
WBOYoriginal
2023-05-13 11:09:37882parcourir

Dans le langage Go, le Data Transfer Object (DTO) est un modèle très courant. Il est largement utilisé dans le développement Web pour effectuer une conversion de classe entre les requêtes et les réponses. Bien que le langage Go soit un langage de type sécurisé, nous devons effectuer une conversion de type lorsque nous traitons de JSON et d'autres formats de données externes. Dans cet article, nous verrons comment gérer les conversions DTO en langage Go.

DTO Background

Data Transfer Object (DTO) est un modèle de conception utilisé pour encapsuler les données qui doivent être transférées dans un objet. Il peut simplifier des objets complexes, rendant les applications plus simples et plus faciles à maintenir. Il peut séparer les objets métier de la mise en œuvre technique et augmenter la sécurité et la flexibilité du programme.

Les objets métier ont généralement une structure qui est mappée à la base de données, mais pour certaines opérations, comme les mises à jour ou les requêtes, seule une partie de l'objet est transmise. C'est là que DTO entre en jeu. Ils simplifient les objets et réduisent la quantité de données transmises au client ou au serveur. Il garantit également une conversion correcte du type de données du client au serveur.

Utiliser Go pour la conversion DTO

Pour utiliser la conversion DTO dans Go, la structure de données correspondante doit être créée, chargée et traitée. Ci-dessous, nous allons créer un exemple pour montrer comment utiliser la conversion DTO.

Tout d'abord, nous allons créer deux structures de données. Représente la structure de l'utilisateur (User) et du DTO (UserDTO). Dans cet exemple, nous supposons que le client envoie un JSON contenant le nom d'utilisateur et l'âge :

type User struct {
    Name string
    Age  int
}

type UserDTO struct {
    Name string
    Age  string
}

Nous pouvons voir que l'âge dans le UserDTO est une chaîne, telle que renvoyée vers ou par le client. L'âge reçu doit être au format chaîne.

Ensuite, nous allons créer une fonction qui convertit une structure de type User en une structure de type UserDTO :

func ConvertToDTO(user User) UserDTO {
    return UserDTO{
        Name: user.Name,
        Age:  strconv.Itoa(user.Age), // int to string
    }
}

Cette fonction crée simplement une nouvelle structure UserDTO, copiez le Nom propriété et convertissez la propriété Age en chaîne. Nous avons utilisé la bibliothèque strconv.Itoa pour ce faire.

Si vous utilisez un framework web comme Echo ou Gin, vous pouvez utiliser cette fonctionnalité lors du traitement des requêtes API.

Pour montrer comment reconvertir UserDTO en structure User, nous allons créer une fonction inverse ConvertToUser :

func ConvertToUser(userDto UserDTO) User {
    age, _ := strconv.Atoi(userDto.Age) // string to int
    return User{
        Name: userDto.Name,
        Age:  age,
    }
}

Cette fonction effectue une conversion inverse, c'est-à-dire convertit la structure UserDTO en User structure . Il convertit à nouveau l'attribut age de chaîne en entier.

Maintenant que nous avons terminé la conversion du DTO, nous pouvons utiliser ces fonctions. Nous le testons en utilisant le code suivant :

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)
}

Dans cet exemple, nous créons un utilisateur nommé Alice âgé de 25 ans. Nous le convertissons en DTO, puis le reconvertissons en type User.

Voici le résultat final :

Alice 25
Alice 25

Vous avez maintenant terminé le processus de conversion DTO à l'aide de Go !

Conclusion

Data Transfer Object (DTO) est un modèle de conception populaire utilisé pour encapsuler les données qui doivent être transférées dans un objet. Lorsque nous devons traiter des formats de données externes en langage Go, tels que JSON ou XML, nous devons effectuer une conversion de type de données. Dans cet article, nous avons examiné la conversion DTO à l'aide de Go et montré comment convertir des données en un type DTO spécifié. J'espère que cet article pourra vous aider à mieux gérer la conversion DTO dans le développement futur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:conversion de type golang jsonArticle suivant:conversion de type golang json