【Go】API 编写测试_实现一个用户模块的接口
package main
import (
"context"
"fmt"
"log"
"google.golang.org/appengine/datastore"
)
// User 定义用户实体
type User struct {
ID int64 `json:"id"`
Username string `json:"username"`
Email string `json:"email"`
}
// userKey 返回用户实体的键
func userKey(ctx context.Context, id int64) *datastore.Key {
return datastore.NewKey(ctx, "User", "", id, nil)
}
// GetUser 根据用户ID获取用户信息
func GetUser(ctx context.Context, id int64) (*User, error) {
key := userKey(ctx, id)
var user User
if err := datastore.Get(ctx, key, &user); err != nil {
return nil, err
}
return &user, nil
}
// CreateUser 创建新用户
func CreateUser(ctx context.Context, user *User) (*User, error) {
_, err := datastore.Put(ctx, userKey(ctx, user.ID), user)
if err != nil {
return nil, err
}
return user, nil
}
func main() {
ctx := context.Background()
user := &User{ID: 1, Username: "johndoe", Email: "johndoe@example.com"}
// 创建用户
createdUser, err := CreateUser(ctx, user)
if err != nil {
log.Fatalf("创建用户失败: %v", err)
}
fmt.Printf("创建用户成功: %+v\n", createdUser)
// 获取用户
fetchedUser, err := GetUser(ctx, user.ID)
if err != nil {
log.Fatalf("获取用户失败: %v", err)
}
fmt.Printf("获取用户成功: %+v\n", fetchedUser)
}
这段代码实现了用户实体的定义、创建和获取功能。它演示了如何使用App Engine datastore包来存储和检索数据。在实际的API中,你可能还需要实现更多的逻辑,例如验证、错误处理和分页等功能。
评论已关闭