读取protobuffer文件,自动生成js api请求。
// Code generated by protoc-gen-hjs. DO NOT EDIT.
// versions:
// protoc-gen-go v1.26.0
// protoc v3.21.12
import request from '@/utils/request.js'
/**
* 用户登录
* @param {Object} data
* @param {string} data.sns_id 渠道标识+渠道唯一标识 sns_id
* @param {string} data.app_id 暂无注释,请联系后端开发索要注释。 app_id
* @return {string} data.jwt_token 暂无注释,请联系后端开发索要注释。 jwt_token
* @return {number} data.user_id 暂无注释,请联系后端开发索要注释。 user_id
* @return {string} data.nick 暂无注释,请联系后端开发索要注释。 nick
* @return {string} data.avatar 暂无注释,请联系后端开发索要注释。 avatar
*/
function login (data) {
return request({
url: '/api/demo/userService/v1/login',
method: 'POST',
data
})
}
代码生成包含几个部分
- 文档相关
此部分是自动生成的代码,用于在提示客户端使用传递给后段的参数有哪些,来源是proto文件注释
- 实际函数
这部分代码是调用方的实际调用,包含url, 方法和数据
syntax="proto3";
package user;
option go_package="pkg/gen/http/user";
// LoginReq 登录请求
message LoginReq{
// @note:渠道标识+渠道唯一标识
// @gotags: form:"sns_id" json:"sns_id"
string sns_id = 1;
// 微信appid
// @gotags: form:"app_id" json:"app_id"
string app_id = 2;
}
// LoginRsp 登录返回
message LoginRsp{
// jwt_token 授权token
// @gotags: form:"jwt_token" json:"jwt_token"
string jwt_token = 1;
// 用户uid
// @gotags: form:"user_id" json:"user_id"
int32 user_id = 2;
// 用户昵称
// @gotags: form:"nick" json:"nick"
string nick = 3;
// 用户头像
// @gotags: form:"avatar" json:"avatar"
string avatar = 4;
}
//@root:/api/demo
service UserService {
// @method:POST @doc:用户登录
rpc Login (LoginReq)returns(LoginRsp);
}
服务端定义参考
使用@note为每一个字段加上注释,@doc定一个每个接口的作用