Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1 @@
# HTTP API文档

View File

@@ -0,0 +1,64 @@
load(
"@io_bazel_rules_go//proto:def.bzl",
"go_proto_library",
)
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
proto_library(
name = "v1_proto",
srcs = [
"captcha.proto",
"dm.proto",
"roomAdmin.proto",
],
tags = ["automanaged"],
deps = ["@gogo_special_proto//github.com/gogo/protobuf/gogoproto"],
)
go_proto_library(
name = "v1_go_proto",
compilers = ["@io_bazel_rules_go//proto:gogofast_grpc"],
importpath = "go-common/app/interface/live/web-room/api/http/v1",
proto = ":v1_proto",
tags = ["automanaged"],
deps = ["@com_github_gogo_protobuf//gogoproto:go_default_library"],
)
go_library(
name = "go_default_library",
srcs = [
"captcha.bm.go",
"dm.bm.go",
"roomAdmin.bm.go",
],
embed = [":v1_go_proto"],
importpath = "go-common/app/interface/live/web-room/api/http/v1",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//library/net/http/blademaster:go_default_library",
"//library/net/http/blademaster/binding:go_default_library",
"@com_github_gogo_protobuf//gogoproto:go_default_library",
"@com_github_gogo_protobuf//proto:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,71 @@
// Code generated by protoc-gen-bm v0.1, DO NOT EDIT.
// source: api/http/v1/captcha.proto
/*
Package v1 is a generated blademaster stub package.
This code was generated with go-common/app/tool/bmgen/protoc-gen-bm v0.1.
It is generated from these files:
api/http/v1/captcha.proto
*/
package v1
import (
"context"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/binding"
)
// to suppressed 'imported but not used warning'
var _ *bm.Context
var _ context.Context
var _ binding.StructValidator
// =================
// Captcha Interface
// =================
// captcha 相关服务
type Captcha interface {
// 创建验证码 `midware:"auth"`
Create(ctx context.Context, req *CreateCaptchaReq) (resp *CreateCaptchaResp, err error)
// 校验接口 `midware:"auth" method:"POST"`
Verify(ctx context.Context, req *VerifyReq) (resp *VerifyResp, err error)
}
var v1CaptchaSvc Captcha
// @params CreateCaptchaReq
// @router GET /xlive/web-room/v1/captcha/create
// @response CreateCaptchaResp
func captchaCreate(c *bm.Context) {
p := new(CreateCaptchaReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v1CaptchaSvc.Create(c, p)
c.JSON(resp, err)
}
// @params VerifyReq
// @router POST /xlive/web-room/v1/captcha/verify
// @response VerifyResp
func captchaVerify(c *bm.Context) {
p := new(VerifyReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v1CaptchaSvc.Verify(c, p)
c.JSON(resp, err)
}
// RegisterV1CaptchaService Register the blademaster route with middleware map
// midMap is the middleware map, the key is defined in proto
func RegisterV1CaptchaService(e *bm.Engine, svc Captcha, midMap map[string]bm.HandlerFunc) {
auth := midMap["auth"]
v1CaptchaSvc = svc
e.GET("/xlive/web-room/v1/captcha/create", auth, captchaCreate)
e.POST("/xlive/web-room/v1/captcha/verify", auth, captchaVerify)
}

View File

@@ -0,0 +1,55 @@
##
> 需要登录
`GET http://api.live.bilibili.com/xlive/web-room/v1/captcha/create`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|type|否|integer||
|client_type|否|string||
|height|否|integer||
|width|否|integer||
```json
{
"code": 0,
"message": "ok",
"data": {
"type": 0,
"geetest": {
"gt": "",
"challenge": ""
},
"image": {
"tips": "",
"token": "",
"content": ""
}
}
}
```
##
> 需要登录
`POST http://api.live.bilibili.com/xlive/web-room/v1/captcha/verify`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|anti|否|string||
```json
{
"code": 0,
"message": "ok",
"data": {
"type": 0,
"token": ""
}
}
```

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,46 @@
syntax = "proto3";
package live.webroom.v1;
option go_package = "v1";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
// captcha 相关服务
service Captcha {
// 创建验证码 `midware:"auth"`
rpc create (CreateCaptchaReq) returns (CreateCaptchaResp);
// 校验接口 `midware:"auth" method:"POST"`
rpc verify (VerifyReq) returns (VerifyResp);
}
message CreateCaptchaReq {
int64 type = 1 [(gogoproto.moretags) = 'form:"type"'];
string client_type = 2 [(gogoproto.moretags) = 'form:"client_type"'];
int64 height = 3 [(gogoproto.moretags) = 'form:"height"'];
int64 width = 4 [(gogoproto.moretags) = 'form:"width"'];
}
message CreateCaptchaResp{
int64 type = 1 [(gogoproto.jsontag) = "type"];
GeeTest geetest = 2 [(gogoproto.jsontag) = "geetest"];
Image image = 3 [(gogoproto.jsontag) = "image"];
}
message GeeTest{
string gt = 1 [(gogoproto.jsontag) = "gt"];
string challenge = 2 [(gogoproto.jsontag) = "challenge"];
}
message Image{
string tips = 1 [(gogoproto.jsontag) = "tips"];
string token = 2 [(gogoproto.jsontag) = "token"];
string content = 3 [(gogoproto.jsontag) = "content"];
}
message VerifyReq{
string anti = 1 [(gogoproto.moretags) = 'form:"anti"'];
}
message VerifyResp{
int64 type = 1 [(gogoproto.jsontag) = "type"];
string token = 2 [(gogoproto.jsontag) = "token"];
}

View File

@@ -0,0 +1,69 @@
// Code generated by protoc-gen-bm v0.1, DO NOT EDIT.
// source: api/http/v1/dm.proto
/*
Package v1 is a generated blademaster stub package.
This code was generated with go-common/app/tool/bmgen/protoc-gen-bm v0.1.
It is generated from these files:
api/http/v1/dm.proto
*/
package v1
import (
"context"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/binding"
)
// to suppressed 'imported but not used warning'
var _ *bm.Context
var _ context.Context
var _ binding.StructValidator
// ============
// DM Interface
// ============
type DM interface {
// `method:"POST"`
SendMsg(ctx context.Context, req *SendDMReq) (resp *SendMsgResp, err error)
// `method:"POST"`
GetHistory(ctx context.Context, req *HistoryReq) (resp *HistoryResp, err error)
}
var v1DMSvc DM
// @params SendDMReq
// @router POST /xlive/web-room/v1/dM/SendMsg
// @response SendMsgResp
func dMSendMsg(c *bm.Context) {
p := new(SendDMReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v1DMSvc.SendMsg(c, p)
c.JSON(resp, err)
}
// @params HistoryReq
// @router POST /xlive/web-room/v1/dM/GetHistory
// @response HistoryResp
func dMGetHistory(c *bm.Context) {
p := new(HistoryReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v1DMSvc.GetHistory(c, p)
c.JSON(resp, err)
}
// RegisterV1DMService Register the blademaster route with middleware map
// midMap is the middleware map, the key is defined in proto
func RegisterV1DMService(e *bm.Engine, svc DM, midMap map[string]bm.HandlerFunc) {
v1DMSvc = svc
e.POST("/xlive/web-room/v1/dM/SendMsg", dMSendMsg)
e.POST("/xlive/web-room/v1/dM/GetHistory", dMGetHistory)
}

View File

@@ -0,0 +1,51 @@
##
`POST http://api.live.bilibili.com/xlive/web-room/v1/dM/SendMsg`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|roomid|是|integer||
|msg|是|string||
|rnd|是|string||
|fontsize|是|integer||
|mode|否|integer||
|color|是|integer||
|bubble|否|integer||
|anti|否|string||
```json
{
"code": 0,
"message": "ok",
"data": {
}
}
```
##
`POST http://api.live.bilibili.com/xlive/web-room/v1/dM/GetHistory`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|roomid|是|integer||
```json
{
"code": 0,
"message": "ok",
"data": {
"Room": [
""
],
"Admin": [
""
]
}
}
```

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,37 @@
syntax = "proto3";
package live.webroom.v1;
option go_package = "v1";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
message SendDMReq {
int64 roomid = 1 [(gogoproto.moretags) = 'form:"roomid" validate:"required"'];
string msg = 2 [(gogoproto.moretags) = 'form:"msg" validate:"required"'];
string rnd = 3 [(gogoproto.moretags) = 'form:"rnd" validate:"required"'];
int64 fontsize = 4 [(gogoproto.moretags) = 'form:"fontsize" validate:"required"'];
int64 mode = 5 [(gogoproto.moretags) = 'form:"mode" validate:"gte=0"'];
int64 color = 6 [(gogoproto.moretags) = 'form:"color" validate:"required"'];
int64 bubble = 7 [(gogoproto.moretags) = 'form:"bubble"'];
string anti = 9 [(gogoproto.moretags) = 'form:"_anti"'];
}
message SendMsgResp {
}
message HistoryReq {
int64 roomid = 1 [(gogoproto.moretags) = 'form:"roomid" validate:"required"'];
}
message HistoryResp {
repeated string Room = 1;
repeated string Admin = 2;
}
service DM{
// `method:"POST"`
rpc SendMsg(SendDMReq) returns (SendMsgResp);
// `method:"POST"`
rpc GetHistory(HistoryReq) returns (HistoryResp);
}

View File

@@ -0,0 +1,55 @@
// Code generated by protoc-gen-bm v0.1, DO NOT EDIT.
// source: api/http/v1/roomAdmin.proto
/*
Package v1 is a generated blademaster stub package.
This code was generated with go-common/app/tool/bmgen/protoc-gen-bm v0.1.
It is generated from these files:
api/http/v1/roomAdmin.proto
*/
package v1
import (
"context"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/binding"
)
// to suppressed 'imported but not used warning'
var _ *bm.Context
var _ context.Context
var _ binding.StructValidator
// ===================
// RoomAdmin Interface
// ===================
// History 相关服务
type RoomAdmin interface {
// 获取主播拥有的的所有房管, 无需登录态
// `method:"GET"
GetByRoom(ctx context.Context, req *RoomAdminGetByRoomReq) (resp *RoomAdminGetByRoomResp, err error)
}
var v1RoomAdminSvc RoomAdmin
// @params RoomAdminGetByRoomReq
// @router GET /xlive/web-room/v1/roomAdmin/get_by_room
// @response RoomAdminGetByRoomResp
func roomAdminGetByRoom(c *bm.Context) {
p := new(RoomAdminGetByRoomReq)
if err := c.BindWith(p, binding.Default(c.Request.Method, c.Request.Header.Get("Content-Type"))); err != nil {
return
}
resp, err := v1RoomAdminSvc.GetByRoom(c, p)
c.JSON(resp, err)
}
// RegisterV1RoomAdminService Register the blademaster route with middleware map
// midMap is the middleware map, the key is defined in proto
func RegisterV1RoomAdminService(e *bm.Engine, svc RoomAdmin, midMap map[string]bm.HandlerFunc) {
v1RoomAdminSvc = svc
e.GET("/xlive/web-room/v1/roomAdmin/get_by_room", roomAdminGetByRoom)
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,53 @@
syntax = "proto3";
package live.webroom.v1;
option go_package = "v1";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
// History 相关服务
service RoomAdmin {
// 获取主播拥有的的所有房管, 无需登录态
// `method:"GET"
rpc get_by_room (RoomAdminGetByRoomReq) returns (RoomAdminGetByRoomResp);
}
message RoomAdminGetByRoomReq {
// 页数
int64 page = 1 [(gogoproto.moretags) = 'form:"page"'];
// 房间号
int64 roomid = 2 [(gogoproto.moretags) = 'form:"roomid" validate:"required"'];
// 每页数量
int64 page_size = 3 [(gogoproto.moretags) = 'form:"page_size"'];
}
message RoomAdminGetByRoomResp {
//
Page page = 1;
//
repeated Data data = 2 [(gogoproto.jsontag) = "data"];
message Data {
// 用户id
int64 uid = 3 [(gogoproto.jsontag) = "uid"];
// 用户名
string uname = 4 [(gogoproto.jsontag) = "uname"];
// 用户头像
string face = 5 [(gogoproto.jsontag) = "face"];
// 上任时间
string ctime = 6 [(gogoproto.jsontag) = "ctime"];
}
message Page {
// 当前页码
int64 page = 1;
// 每页大小
int64 page_size = 2;
// 总页数
int64 total_page = 3;
// 总记录数
int64 total_count = 4;
}
}

View File

@@ -0,0 +1,44 @@
## 获取主播拥有的的所有房管, 无需登录态
`method:"GET"
`GET http://api.live.bilibili.com/xlive/web-room/v1/roomAdmin/get_by_room`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|page|否|integer| 页数|
|roomid|是|integer| 房间号|
|page_size|否|integer| 每页数量|
```json
{
"code": 0,
"message": "ok",
"data": {
"page": {
// 当前页码
"page": 0,
// 每页大小
"page_size": 0,
// 总页数
"total_page": 0,
// 总记录数
"total_count": 0
},
"data": [
{
// 用户id
"uid": 0,
// 用户名
"uname": "",
// 用户头像
"face": "",
// 上任时间
"ctime": ""
}
]
}
}
```