我有一个问题,我不确定如何在Go中解决。我需要创建一个与基于json的api进行对话的客户端。
所以我认为我会使用composition来构建类似于下面的结构。
type (
BaseData struct {
CommonFields string
}
Data struct {
BaseData
Result string
}
)
现在我将数据结构发送到api并解组对结果的响应,到目前为止一切都很好。
现在的问题是我有不同的发送请求需要不同的“结果”组合,因此需要在同一个包中有许多Data结构的定义,这是不好的。
我很难看到应该怎么做。任何方向的指针都会很棒。
答案 0 :(得分:0)
不要创建镜像或模仿您要使用的API的模型结构。 以对您的程序有意义的方式设计您的模型, 遵循DDD principles在高概念层面, 例如,在实施层面上SOLID principles。
最有可能:
在程序中创建一个用于与外部API通信的图层, 并使您的程序的其余部分依赖于此层,而不是直接在外部API上。 这样,如果API中的某些内容发生变化,您只需要更改通信层,程序的其余部分就可以继续不受影响地工作。
在此通信层中,使用与API通信所需的任何结构。 不要使用任何不需要的结构。 并将这些结构转换为程序其余部分中使用的结构。 这可能涉及大量手动复制,一开始可能看起来不太好, 但这是保护程序免受外部变化影响的方法。