go-zero API doc

account.api

type AccountRegisterReq {
	Mail      string `json:"mail"`
	FiretName string `json:"first_name"`
	LastName  string `json:"last_name"`
	Account   string `json:"account"`
	Password  string `json:"password"`
}

type AccountLoginReq {
	Account   string `json:"account"`
	Password  string `json:"password"`
}

type AccountInfoRes {
	AccountId int `json:"account_id"`
	JwtToken
}

service jwt-api {
    @handler accountPing
    post /account/ping ()
    
    @handler accountRegister
    post /account/register(AccountRegisterReq) returns (AccountInfoRes)
    
    @handler accountLogin
    post /account/login(AccountLoginReq) returns (AccountInfoRes)
}

@server(
    jwt: AccountAuth
    middleware: AccountCheck
)
service jwt-api {
    @handler accountInfo
    get /account/info(UserInfoReq) returns (UserLoginRes)
}

user.api

//注册请求
type UserRegisterReq {
    Mobile   string `json:"mobile"` //基本一个手机号码就完事
    Password string `json:"password"`
    Smscode  string `json:"smscode"` //短信码
}

//登陆请求
type UserLoginReq{
    Mobile   string `json:"mobile"`
    Type     int    `json:"type"`    //1.密码登陆,2.短信登陆
    Password string `json:"password"`
}

//返回用户信息
type UserLoginRes {
    Auid      int    `json:"auid"`
    Uid       int    `json:"uid"`
    Beid      int    `json:"beid"` //应用id
    Ptyid     int    `json:"ptyid"` //对应平台
    Username  string `json:"username"`
    Mobile    string `json:"mobile"`
    Nickname  string `json:"nickname"`
    Openid    string `json:"openid"`
    Avator    string `json:"avator"`
    JwtToken
}

type UserInfoReq {
    Auid      int  `json:"auid"`
    Uid       int  `json:"uid"`
    Beid      int  `json:"beid"` //应用id
    Ptyid     int  `json:"ptyid"` //对应平台
	JwtToken
}

service jwt-api {
    @handler userPing
    post /user/ping ()
    
    @handler userRegister
    post /user/register(UserRegisterReq) returns (UserLoginRes)
    
    @handler userLogin
    post /user/login(UserLoginReq) returns (UserLoginRes)
}

@server(
    jwt: UserAuth
    middleware: UserCheck
)
service jwt-api {
    @handler userInfo
    get /user/info(UserInfoReq) returns (UserLoginRes)
}

jwt.api

syntax = "v1"

info(
	title: // TODO: add title
	desc: // TODO: add description
	author: "FrankHsieh"
	email: "frank30941@gmail.com"
)

import "account.api"
import "user.api"

type JwtToken {
	AccessToken  string `json:"access_token,omitempty"`
	AccessExpire int64  `json:"access_expire,omitempty"`
	RefreshAfter int64  `json:"refresh_after,omitempty"`
}
.
├── account.api
├── etc
│   └── jwt-api.yaml
├── go.mod
├── go.sum
├── internal
│   ├── config
│   │   └── config.go
│   ├── handler
│   │   ├── accountinfohandler.go
│   │   ├── accountloginhandler.go
│   │   ├── accountpinghandler.go
│   │   ├── accountregisterhandler.go
│   │   ├── routes.go
│   │   ├── userinfohandler.go
│   │   ├── userloginhandler.go
│   │   ├── userpinghandler.go
│   │   └── userregisterhandler.go
│   ├── logic
│   │   ├── accountinfologic.go
│   │   ├── accountloginlogic.go
│   │   ├── accountpinglogic.go
│   │   ├── accountregisterlogic.go
│   │   ├── userinfologic.go
│   │   ├── userloginlogic.go
│   │   ├── userpinglogic.go
│   │   └── userregisterlogic.go
│   ├── middleware
│   │   ├── accountcheckmiddleware.go
│   │   └── usercheckmiddleware.go
│   ├── svc
│   │   └── servicecontext.go
│   └── types
│       └── types.go
├── jwt.api
├── jwt.go
└── user.api