gpt4 book ai didi

go - 具有不同组成的多个结构

转载 作者:IT王子 更新时间:2023-10-29 01:47:43 26 4
gpt4 key购买 nike

我有一个问题,我不确定如何在 Go 中解决。我需要制作一个与基于 json 的 api 对话的客户端。

所以我想我会使用组合来构建类似于下面的结构。

type (
BaseData struct {
CommonFields string
}

Data struct {
BaseData
Result string
}
)

现在我将数据结构发送到 api 并解码对结果的响应,到目前为止一切正常。

现在的问题是我要发送的不同请求需要不同的“结果”组合,因此需要在同一个包中定义多个数据结构,这是不好的。

我正在努力了解应该如何完成。方向上的任何指针都会很棒。

最佳答案

请勿创建反射(reflect)或模仿您要使用的 API 的模型结构。以对您的程序有意义的方式设计您的模型,以下 DDD principles在较高的概念层面上,和 SOLID principles例如,在实现层面。

最有可能:

  • 您不需要外国 API 的所有功能。通过过多地遵循它们的结构,您将在您的程序中实现许多没有任何目的的样板文件。
  • 您不希望您的程序因外部 API 的微小变化而崩溃。

在你的程序中创建一个层来与外部 API 通信,并让你的程序的其余部分依赖于这一层,永远不要直接依赖于外部 API。这样,如果 API 发生变化,您只需更改通信层,程序的其余部分可以继续工作而不受影响。

在此通信层中,使用与 API 通信所需的任何结构。不要使用任何不需要的结构。并将这些结构转换为程序其余部分中使用的结构。这可能涉及大量的手动复制,一开始可能看起来不太好,但这是保护您的程序免受外部更改影响的方法。

关于go - 具有不同组成的多个结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40572106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com