Dalam bahasa Go, Data Transfer Object (DTO) ialah corak yang sangat biasa. Ia digunakan secara meluas dalam pembangunan web untuk melaksanakan penukaran kelas antara permintaan dan respons. Walaupun bahasa Go ialah bahasa selamat jenis, kami perlu melakukan penukaran jenis apabila berurusan dengan JSON dan format data luaran yang lain. Dalam artikel ini, kita akan melihat cara mengendalikan penukaran DTO dalam bahasa Go.
Latar Belakang DTO
Objek Pemindahan Data (DTO) ialah corak reka bentuk yang digunakan untuk merangkum data yang perlu dipindahkan dalam objek. Ia boleh memudahkan objek kompleks, menjadikan aplikasi lebih mudah dan lebih mudah untuk diselenggara. Ia boleh memisahkan objek perniagaan daripada pelaksanaan teknikal dan meningkatkan keselamatan dan fleksibiliti program.
Objek perniagaan biasanya mempunyai struktur yang dipetakan ke pangkalan data, tetapi untuk operasi tertentu, seperti kemas kini atau pertanyaan, hanya sebahagian daripada objek yang diluluskan. Di sinilah DTO berperanan. Mereka memudahkan objek dan mengurangkan jumlah data yang dihantar kepada klien atau pelayan. Ia juga memastikan penukaran jenis data yang betul dari klien ke pelayan.
Menggunakan Go untuk penukaran DTO
Untuk menggunakan penukaran DTO dalam Go, struktur data yang sepadan mesti dibuat, dimuatkan dan diproses. Di bawah kami akan membina contoh untuk menunjukkan cara menggunakan penukaran DTO.
Pertama, kami akan mencipta dua struktur data. Mewakili struktur pengguna (Pengguna) dan DTO (UserDTO). Dalam contoh ini, kami menganggap bahawa pelanggan menghantar JSON yang mengandungi nama pengguna dan umur:
type User struct { Name string Age int } type UserDTO struct { Name string Age string }
Kita dapat melihat bahawa umur dalam UserDTO ialah rentetan, seperti yang dikembalikan kepada atau diterima daripada pelanggan Umur mestilah dalam format rentetan.
Seterusnya, kami akan mencipta fungsi yang menukar struktur jenis Pengguna kepada struktur jenis UserDTO:
func ConvertToDTO(user User) UserDTO { return UserDTO{ Name: user.Name, Age: strconv.Itoa(user.Age), // int to string } }
Fungsi ini hanya mencipta struktur UserDTO baharu, menyalin sifat Nama Dan menukar Harta umur kepada rentetan. Kami menggunakan perpustakaan strconv.Itoa untuk melakukan ini.
Jika anda menggunakan rangka kerja web seperti Echo atau Gin, anda boleh menggunakan ciri ini semasa mengendalikan permintaan API.
Untuk menunjukkan cara menukar UserDTO kembali kepada struktur Pengguna, kami akan mencipta fungsi terbalik ConvertToUser:
func ConvertToUser(userDto UserDTO) User { age, _ := strconv.Atoi(userDto.Age) // string to int return User{ Name: userDto.Name, Age: age, } }
Fungsi ini melakukan penukaran terbalik, iaitu, menukar struktur UserDTO kepada struktur Pengguna. Ia menukar atribut umur daripada rentetan kepada integer sekali lagi.
Sekarang kami telah menyelesaikan penukaran DTO, kami boleh menggunakan fungsi ini. Kami mengujinya menggunakan kod berikut:
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) }
Dalam contoh ini, kami mencipta pengguna bernama Alice berumur 25 tahun. Kami menukarnya kepada DTO dan kemudian menukarnya kembali kepada jenis Pengguna.
Berikut ialah output akhir:
Alice 25 Alice 25
Anda kini telah menyelesaikan proses penukaran DTO menggunakan Go!
Kesimpulan
Data Transfer Object (DTO) ialah corak reka bentuk popular yang digunakan untuk merangkum data yang perlu dipindahkan dalam objek. Apabila kami perlu memproses format data luaran dalam bahasa Go, seperti JSON atau XML, kami perlu melakukan penukaran jenis data. Dalam artikel ini, kami melihat penukaran DTO menggunakan Go dan menunjukkan cara menukar data kepada jenis DTO yang ditentukan. Saya harap artikel ini dapat membantu anda mengendalikan penukaran DTO dengan lebih baik dalam pembangunan masa hadapan.
Atas ialah kandungan terperinci golang dto penukaran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!