创建用于通过API获取数据的数据库管理器API的基本概念。我正在使用GORM来获取strcut实例的数据。因此,代表表的结构为300-400。
type Users struct {
ID int64
Name string
}
type Categories struct {
ID int64
Category string
}
下一步,我实现了一个函数,该函数通过表名(通过API端点参数获取的内容)返回结构的正确实例。
func GetModel(model string) interface{} {
switch model {
case "users":
return Users{}
case "categories"
return Categories{}
}
return false
}
之后是一个操作结构,其中唯一的一个字段是DB。有一些方法,例如我要使用GORM db.Last(&users)函数的GetLast()。
func (o Operations) GetLast(model string) interface{} {
modelStruct := GetModel(model)
.
.
.
return o.DB.Last(&modelStruct)
}
有几点,所以这是我不知道的。当前解决方案无法正常工作,因为在这种情况下,它是一个接口{},我需要在此问题中提供类型断言更多信息。类型断言如下所示:
func (o Operations) GetLast(model string) interface{} {
modelStruct := GetModel(model)
.
test := modelStruct.(Users)
.
return o.DB.Last(&test)
}
该解决方案有效,但是在这种情况下,我失去了模块化。我尝试使用reflect.TypeOf(modelStruct)
,但它也不起作用,因为reflect.TypeOf的结果是reflect.Type,with不是golang类型。
基本上,我解决了将模型作为指针并在将其作为json文件返回后的问题。
所以我的模型如下:
var Models = map[string]interface{}{
"users": new(Users),
"categories": new(Categories),
}
然后按表类型返回一个新模型。我可以用于gorm First()函数。然后json将其编组,然后返回。
func (o Operation) First(model string, query url.Values) string {
modelStruct := Models[model]
db := o.DB
db.First(modelStruct)
response, _ := json.Marshal(modelStruct)
clear(modelStruct)
return string(response)
}
在返回之前,我清除了模型指针,因为First()函数存储了最新查询的回调。
func clear(v interface{}) {
p := reflect.ValueOf(v).Elem()
p.Set(reflect.Zero(p.Type()))
}
变量可以处理不同类型的值,称为数据类型。基本的类型是数和字符串,我们已经讨论过它们了。在后面的章节里面,我们会研究怎么用类创造我们自己的类型。
在 redux-saga 的世界里,Sagas 都用 Generator 函数实现。我们从 Generator 里 yield 纯 JavaScript 对象以表达 Saga 逻辑。 我们称呼那些对象为 Effect。Effect 是一个简单的对象,这个对象包含了一些给 middleware 解释执行的信息。 你可以把 Effect 看作是发送给 middleware 的指令以执行某些操作(调用某
在 Rust 中,任何值都属于一种明确的 类型(type),这告诉了 Rust 它被指定为何种数据,以便明确其处理方式。本部分我们将看到一系列内建于语言中的类型。我们将其分为两类:标量(scalar)和复合(compound)。 Rust 是 静态类型(statically typed)语言,也就是说在编译时就必须知道所有变量的类型,这一点将贯穿整个章节。通过值的形式及其使用方式,编译器通常可以推
概述:概述Istio中的流量管理及其功能。 Pilot:引入Pilot,负责在服务网格中管理Envoy代理的分布式部署的组件。 请求路由:描述在Istio服务网格中服务之间如何路由请求。 发现和负载均衡:描述在网格中的服务实例之间的流量如何负载均衡。 处理故障: Envoy中的故障恢复功能概述,可以被未经修改的应用程序来利用,以提高鲁棒性并防止级联故障。 故障注入: 介绍系统故障注入的概念,可用于
1.5.1. 什么是MaxDB? 1.5.2. MaxDB的历史 1.5.3. MaxDB的特性 1.5.4. 许可和支持 1.5.5. MaxDB和MySQL之间的特性差异 1.5.6. MaxDB和MySQL之间的协同性 1.5.7. 与MaxDB有关的链接 MaxDB是一种大型高效的企业数据库。数据库管理通过了SAP认证。 MaxDB是数据库管理系统的新名称,以前称为SAP DB。2003年
1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发、发布并支持的。MySQL AB是由多名MySQL开发人创办的一家商业公司。它是一家第二代开放源码公司,结合了开放源码价值取向、方法和成功的商业