我有一个我正在反对的肥皂服务。soap API 的一部分用于返回查询结果,我希望提供用于解码信封的基本结构,同时允许开发人员填写 encoding/xml 将解码到的接口。type QueryEnvelope struct { XMLName xml.Name `xml:"http://schemas.xmlsoap.org/soap/envelope/ Envelope"` Body *QueryBody `xml:"http://schemas.xmlsoap.org/soap/envelope/ Body"`}type QueryBody struct { QueryResult *QueryResult `xml:"queryResponse>result"`}type QueryResult struct { Done bool `xml:"done"` Size int `xml:"size"` Records Record `xml:"records"`}type Record interface { UnmarshalXML(d *xml.Decoder, start xml.StartElement) error}是否可以注入这样的接口以进行解组,还是必须在 QueryEnvelope{} 级别接受该接口?理想情况下,客户端会像这样:type Record struct { Id int `xml:"id"`, Name stirng `xml:"name"`}func (r *Record) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { // unmasrshal here, or best case I dont even need to implment UnmarsahlXML()!}res, err := Query("select id from table", Record{})这意味着他们不必重现 QueryEnvelope 结构(作为使用我正在创建的包的开发人员)
2 回答
- 2 回答
- 0 关注
- 201 浏览
添加回答
举报
0/150
提交
取消