这是我参与「第六届青训营」伴学笔记创作活动的第 8 天,今天学习了API 接口,现在就我学习到的知识进行总结。
本期目录
- 构建API接口
- 用户认证
构建API接口
首先,我们需要做的是配置go语言环境,并创建新的项目,可以在官网上下载。
创建一个新的项目,并引入一些常用的库,我这里引入的是 net/http 和 encoding/json。
net/http
net/http 库提供了 HTTP 客户端和服务器实现,可以帮助我们快速构建 HTTP 服务。
encoding/json
encoding/json 库则提供了对 JSON 数据格式的支持,可以帮助我们处理 JSON 数据,这些都是在构建 API 接口所必要的准备。
具体代码如下:
package main
import (
"encoding/json"
"net/http"
)
具体操作
接下来我们进行接口的编写:
- 定义用户数据结构,用于验证用户身份
- 定义handleLogin函数,用于处理用户登录请求
type User struct {
Username string `json:"username"`
Password string `json:"password"`
}
func handleLogin(w http.ResponseWriter, r *http.Request) {
// 解析请求中的 JSON 数据
var user User
err := json.NewDecoder(r.Body).Decode(&user)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
// 验证用户名和密码
if user.Username == "admin" && user.Password == "password" {
// 登录成功,返回成功信息
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(map[string]string{
"message": "登录成功",
})
} else {
// 登录失败,返回错误信息
http.Error(w, "用户名或密码错误", http.StatusUnauthorized)
}
}
启动 HTTP 服务器
这样我们就可以启动http服务器了
func main() {
http.HandleFunc("/login", handleLogin)
err := http.ListenAndServe(":8080", nil)
if err != nil {
panic(err)
}
}
总结:今天学习了关于构建 API 接口和用户认证的相关知识,其中包含了设计 API 接口和实施用户认证的步骤,希望对今后的实际操作有帮助