当前位置: 首页 > 网络应用技术

Golang实现了肥皂客户的经验摘要

时间:2023-03-07 13:58:13 网络应用技术

  SOAP是一种基于XML的“简单”协议,它在10年前一直很受欢迎,以基于JSON协议的Restful API比现在很受欢迎。

  如果项目的开发语言为.NET或Java,则可以,因为IDE具有方便的构建功能,可以分析SOAP服务的WSDL文件,并自动生成客户端的相关代码。但是如果您使用Golang,则,这很麻烦。

  让我们谈谈肥皂或麻烦的地方之间的区别。

  以下是请求主体的示例。该XML必须指定特定的命名空间。API的验证密钥信息也写在请求主体中。

  通常,零件通常更复杂。如果没有工具支持,它是手工写的,很容易犯错误。

  在标题中,不要下意识地写下它。此标头是特别的关注,您需要将其设置为要被称为动作,应该注意的是,不同的动作baseurl可能是不同的。相反,Restful的API不是这么多坑。

  尽管大多数情况下,SOAP的返回数据是XML格式,但有时如下以下多个部分的格式,这需要一些努力来分析它。

  golang的时间类型需要在解散时的时区信息。简而言之,最后必须至少有一个z。例如:2021-09-23T14:55:43.835Z。这是一种重写的方法。

  写了这么多书籍后,您还会发现,如果没有准备好工具,则必须处理的细节并不普通。

  在技术领域,没有新问题,否则您将永远不会遇到这个问题。我开始寻找道路。我不得不说搜索或Google!

  我找到了我喜欢的工具GOWSDL,您可以使用此工具轻松生成模板代码:您可以使用此工具:

  但是,我不建议您直接使用生成的代码,而只使用其定义的结构,然后为自己打包客户端。原因是:

  总体而言,生成代码有许多优势:

  最后,让我们提到。我不知道这是我集成的第三方服务的肥皂协议。它与该错误相同。对于PR,尽管没有人可以处理,但确实很棘手。

  在这种情况下,它涉及另一个问题。当使用Go Mod管理第三方软件包时,如何保存参考软件包中的问题?

  实际上,它可以分为3个步骤:

  我没有调查 - 深度调查的原因,但感觉与go.mod.still有关,您将不会是第一个遇到这个问题的人。解决方案是在go.mod中使用替换函数。在Go.mod文件的末尾,添加以下代码以修复此错误。