构建 API 接口和用户认证的实践指南 | 青训营

92 阅读1分钟

这是我参与「第六届青训营」伴学笔记创作活动的第 8 天,今天学习了API 接口,现在就我学习到的知识进行总结。

本期目录

  • 构建API接口
  • 用户认证

构建API接口

首先,我们需要做的是配置go语言环境,并创建新的项目,可以在官网上下载。

创建一个新的项目,并引入一些常用的库,我这里引入的是 net/httpencoding/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 接口和实施用户认证的步骤,希望对今后的实际操作有帮助