Walaupun Go secara asli tidak mempunyai sokongan WSDL, anda boleh mengekod dan menyahkod permintaan SOAP secara manual. Walau bagaimanapun, pendekatan ini menjadi rumit disebabkan oleh keanehan pelayan SOAP yang berbeza.
Kekurangan Pengekodan Standard/XML
Menggunakan pakej pengekodan/xml standard untuk SOAP memberikan pengehadan :
xmlutil: Penyelesaian Tersuai
Untuk memudahkan pengendalian SOAP dalam Go, pakej xmlutil menyediakan ciri berikut:
Contoh Penggunaan
Contoh berikut menunjukkan pengekodan dan penyahkodan permintaan SOAP dengan xmlutil:
import ( "github.com/webconnex/xmlutil" ) type MethodCall struct { One string Two string } x := xmlutil.NewXmlUtil() x.RegisterTypeMore(MethodCall{}, xml.Name{"", ""}, []xml.Attr{...}) buf := new(bytes.Buffer) enc := x.NewEncoder(buf) env := &Envelope{Body{MethodCall{One: "one", Two: "two"}}} enc.Encode(env)
Dengan menggunakan kaedah Cari, anda boleh mengendalikan struktur tindak balas yang kompleks:
dec := x.NewDecoder(bytes.NewBufferString(...)) find := []xml.Name{xml.Name{"", "MethodCallResponse"}, xml.Name{"http://www.w3.org/2003/05/soap-envelope", "Fault"}} var start *xml.StarElement if start, err := dec.Find(find); err != nil {...}
Kesimpulan
Walaupun SOAP mungkin tidak menjadi ideal, xmlutil menawarkan penyelesaian praktikal untuk mengendalikan SOAP/WSDL dalam Go, memudahkan proses pengekodan dan penyahkodan dalam cara yang fleksibel dan cekap.
Atas ialah kandungan terperinci Bagaimanakah xmlutil Boleh Memudahkan Pengendalian SOAP/WSDL dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!