gpt4 book ai didi

go - 如何在 REST API 中管理映射模型

转载 作者:数据小太阳 更新时间:2023-10-29 03:34:36 26 4
gpt4 key购买 nike

我有一个 REST API,对于每个响应,我需要将我的核心模型映射到我将在 REST 服务中公开的模型。

我想给模型命名,比如:

package main 

type User struct {
Name string
Password string
}

以及我想在我的 API 中公开的用户结构:

type User struct {
Name string
}

我该如何组织我的代码,以免出现名称冲突,因为当我尝试这样做时会出现错误:

previous declaration at

如果我将我的 API 结构的包更改为:

package api
type User struct { ... }

我得到另一个错误

can't load package: package ... found package main and api

如果我能够分离模型,我将如何引用其他包的模型:

func mapUserToApi(user User) api.User {
}

所以我想将 main.User 作为参数并返回 api.User。

最佳答案

正如其他人所指出的,你想做的事情在同一个包下根本不可能,即使在不同的包下也很可能造成混淆。如果你想继续做后者,你应该有一个名为 api 的文件夹,你可以把 user.go 放在里面。示例文件夹结构如下所示:

main.go // package main
user.go // package main
/api
user.go // package api

就其值(value)而言,当我设计一个 API 时,我通常会在包 model 中有一个结构 User 和一个结构 UserResponse在包 handler 中。对于获取数据的端点,它们还将有一个与之关联的 UserRequest 结构。这清楚地表明了它们的目的是什么,而不管它们在哪个包中被引用。

关于go - 如何在 REST API 中管理映射模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50027041/

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