init: init refactor
This commit is contained in:
@@ -0,0 +1,377 @@
|
||||
syntax = "v1"
|
||||
|
||||
info (
|
||||
title: "电台业务服务API"
|
||||
desc: "频道、节目、订阅、互动、支付、VIP、音色等HTTP接口"
|
||||
author: "sundynix"
|
||||
version: "v1.0.0"
|
||||
)
|
||||
|
||||
type (
|
||||
// ---------- 通用 ----------
|
||||
IdReq {
|
||||
Id string `json:"id"`
|
||||
}
|
||||
IdPathReq {
|
||||
Id string `path:"id"`
|
||||
}
|
||||
IdsReq {
|
||||
Ids []string `json:"ids"`
|
||||
}
|
||||
// ---------- 分类 ----------
|
||||
CategoryReq {
|
||||
Name string `json:"name"`
|
||||
Icon string `json:"icon,optional"`
|
||||
Sort int `json:"sort,optional"`
|
||||
}
|
||||
CategoryUpdateReq {
|
||||
Id string `json:"id"`
|
||||
Name string `json:"name,optional"`
|
||||
Icon string `json:"icon,optional"`
|
||||
Sort int `json:"sort,optional"`
|
||||
}
|
||||
CategoryListReq {
|
||||
Current int `json:"current,optional"`
|
||||
PageSize int `json:"pageSize,optional"`
|
||||
Name string `json:"name,optional"`
|
||||
}
|
||||
// ---------- 频道 ----------
|
||||
ChannelReq {
|
||||
CategoryId string `json:"categoryId"`
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description,optional"`
|
||||
IsFree int `json:"isFree,optional"`
|
||||
IsVipOnly int `json:"isVipOnly,optional"`
|
||||
MonthlyPrice int `json:"monthlyPrice,optional"`
|
||||
QuarterlyPrice int `json:"quarterlyPrice,optional"`
|
||||
AnnualPrice int `json:"annualPrice,optional"`
|
||||
Cover string `json:"cover,optional"`
|
||||
Tags string `json:"tags,optional"`
|
||||
Sort int `json:"sort,optional"`
|
||||
}
|
||||
ChannelUpdateReq {
|
||||
Id string `json:"id"`
|
||||
CategoryId string `json:"categoryId,optional"`
|
||||
Name string `json:"name,optional"`
|
||||
Description string `json:"description,optional"`
|
||||
IsFree int `json:"isFree,optional"`
|
||||
IsVipOnly int `json:"isVipOnly,optional"`
|
||||
MonthlyPrice int `json:"monthlyPrice,optional"`
|
||||
QuarterlyPrice int `json:"quarterlyPrice,optional"`
|
||||
AnnualPrice int `json:"annualPrice,optional"`
|
||||
Cover string `json:"cover,optional"`
|
||||
Tags string `json:"tags,optional"`
|
||||
Sort int `json:"sort,optional"`
|
||||
Status int `json:"status,optional"`
|
||||
}
|
||||
ChannelListReq {
|
||||
Current int `json:"current,optional"`
|
||||
PageSize int `json:"pageSize,optional"`
|
||||
CategoryId string `json:"categoryId,optional"`
|
||||
Name string `json:"name,optional"`
|
||||
}
|
||||
// ---------- 节目 ----------
|
||||
ProgramReq {
|
||||
ChannelId string `json:"channelId"`
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description,optional"`
|
||||
Content string `json:"content,optional"`
|
||||
Cover string `json:"cover,optional"`
|
||||
AudioId string `json:"audioId,optional"`
|
||||
Tags string `json:"tags,optional"`
|
||||
}
|
||||
ProgramUpdateReq {
|
||||
Id string `json:"id"`
|
||||
ChannelId string `json:"channelId,optional"`
|
||||
Title string `json:"title,optional"`
|
||||
Description string `json:"description,optional"`
|
||||
Content string `json:"content,optional"`
|
||||
Cover string `json:"cover,optional"`
|
||||
AudioId string `json:"audioId,optional"`
|
||||
Tags string `json:"tags,optional"`
|
||||
Status int `json:"status,optional"`
|
||||
}
|
||||
ProgramListReq {
|
||||
Current int `json:"current,optional"`
|
||||
PageSize int `json:"pageSize,optional"`
|
||||
ChannelId string `json:"channelId,optional"`
|
||||
Title string `json:"title,optional"`
|
||||
}
|
||||
// ---------- 音色 ----------
|
||||
VoiceReq {
|
||||
SpeakerId string `json:"speakerId"`
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description,optional"`
|
||||
Gender string `json:"gender,optional"`
|
||||
Icon string `json:"icon,optional"`
|
||||
AudioId string `json:"audioId,optional"`
|
||||
Sort int `json:"sort,optional"`
|
||||
IsDefault int `json:"isDefault,optional"`
|
||||
}
|
||||
VoiceUpdateReq {
|
||||
Id string `json:"id"`
|
||||
Name string `json:"name,optional"`
|
||||
Description string `json:"description,optional"`
|
||||
Gender string `json:"gender,optional"`
|
||||
Icon string `json:"icon,optional"`
|
||||
AudioId string `json:"audioId,optional"`
|
||||
Sort int `json:"sort,optional"`
|
||||
IsDefault int `json:"isDefault,optional"`
|
||||
Status int `json:"status,optional"`
|
||||
}
|
||||
VoiceListReq {
|
||||
Current int `json:"current,optional"`
|
||||
PageSize int `json:"pageSize,optional"`
|
||||
Gender string `json:"gender,optional"`
|
||||
}
|
||||
// ---------- 订阅 ----------
|
||||
SubscribeReq {
|
||||
ChannelId string `json:"channelId"`
|
||||
PlanType string `json:"planType"`
|
||||
}
|
||||
// ---------- 互动 ----------
|
||||
LikeReq {
|
||||
ProgramId string `json:"programId"`
|
||||
}
|
||||
FavoriteReq {
|
||||
ProgramId string `json:"programId"`
|
||||
}
|
||||
CommentReq {
|
||||
ProgramId string `json:"programId"`
|
||||
Content string `json:"content"`
|
||||
ParentId string `json:"parentId,optional"`
|
||||
}
|
||||
HistoryReq {
|
||||
ProgramId string `json:"programId"`
|
||||
Duration int `json:"duration,optional"`
|
||||
}
|
||||
HistoryListReq {
|
||||
Current int `json:"current,optional"`
|
||||
PageSize int `json:"pageSize,optional"`
|
||||
}
|
||||
// ---------- 支付 ----------
|
||||
CreatePayOrderReq {
|
||||
ChannelId string `json:"channelId,optional"`
|
||||
PlanType string `json:"planType"`
|
||||
OrderType string `json:"orderType"`
|
||||
}
|
||||
// ---------- VIP ----------
|
||||
VipConfigListReq {
|
||||
Current int `json:"current,optional"`
|
||||
PageSize int `json:"pageSize,optional"`
|
||||
}
|
||||
// ---------- 数据分析 ----------
|
||||
AnalyticsReq {
|
||||
StartDate string `json:"startDate,optional"`
|
||||
EndDate string `json:"endDate,optional"`
|
||||
}
|
||||
// ---------- TTS ----------
|
||||
TtsReq {
|
||||
Text string `json:"text"`
|
||||
SpeakerId string `json:"speakerId,optional"`
|
||||
}
|
||||
)
|
||||
|
||||
// ========== 无需鉴权 ==========
|
||||
@server (
|
||||
prefix: /api/radio
|
||||
group: callback
|
||||
)
|
||||
service radio-api {
|
||||
@doc "微信支付回调"
|
||||
@handler WechatPayCallback
|
||||
post /callback/wechatpay
|
||||
}
|
||||
|
||||
// ========== 需要鉴权 ==========
|
||||
@server (
|
||||
prefix: /api/radio
|
||||
group: category
|
||||
jwt: Auth
|
||||
)
|
||||
service radio-api {
|
||||
@doc "创建分类"
|
||||
@handler CreateCategory
|
||||
post /category/create (CategoryReq)
|
||||
|
||||
@doc "更新分类"
|
||||
@handler UpdateCategory
|
||||
put /category/update (CategoryUpdateReq)
|
||||
|
||||
@doc "删除分类"
|
||||
@handler DeleteCategory
|
||||
delete /category/delete (IdsReq)
|
||||
|
||||
@doc "分类列表"
|
||||
@handler GetCategoryList
|
||||
post /category/list (CategoryListReq)
|
||||
}
|
||||
|
||||
@server (
|
||||
prefix: /api/radio
|
||||
group: channel
|
||||
jwt: Auth
|
||||
)
|
||||
service radio-api {
|
||||
@doc "创建频道"
|
||||
@handler CreateChannel
|
||||
post /channel/create (ChannelReq)
|
||||
|
||||
@doc "更新频道"
|
||||
@handler UpdateChannel
|
||||
put /channel/update (ChannelUpdateReq)
|
||||
|
||||
@doc "删除频道"
|
||||
@handler DeleteChannel
|
||||
delete /channel/delete (IdsReq)
|
||||
|
||||
@doc "频道列表"
|
||||
@handler GetChannelList
|
||||
post /channel/list (ChannelListReq)
|
||||
|
||||
@doc "频道详情"
|
||||
@handler GetChannelDetail
|
||||
get /channel/:id (IdPathReq)
|
||||
}
|
||||
|
||||
@server (
|
||||
prefix: /api/radio
|
||||
group: program
|
||||
jwt: Auth
|
||||
)
|
||||
service radio-api {
|
||||
@doc "创建节目"
|
||||
@handler CreateProgram
|
||||
post /program/create (ProgramReq)
|
||||
|
||||
@doc "更新节目"
|
||||
@handler UpdateProgram
|
||||
put /program/update (ProgramUpdateReq)
|
||||
|
||||
@doc "删除节目"
|
||||
@handler DeleteProgram
|
||||
delete /program/delete (IdsReq)
|
||||
|
||||
@doc "节目列表"
|
||||
@handler GetProgramList
|
||||
post /program/list (ProgramListReq)
|
||||
|
||||
@doc "节目详情"
|
||||
@handler GetProgramDetail
|
||||
get /program/:id (IdPathReq)
|
||||
|
||||
@doc "TTS生成音频"
|
||||
@handler GenerateTts
|
||||
post /program/tts (TtsReq)
|
||||
}
|
||||
|
||||
@server (
|
||||
prefix: /api/radio
|
||||
group: voice
|
||||
jwt: Auth
|
||||
)
|
||||
service radio-api {
|
||||
@doc "创建音色"
|
||||
@handler CreateVoice
|
||||
post /voice/create (VoiceReq)
|
||||
|
||||
@doc "更新音色"
|
||||
@handler UpdateVoice
|
||||
put /voice/update (VoiceUpdateReq)
|
||||
|
||||
@doc "删除音色"
|
||||
@handler DeleteVoice
|
||||
delete /voice/delete (IdsReq)
|
||||
|
||||
@doc "音色列表"
|
||||
@handler GetVoiceList
|
||||
post /voice/list (VoiceListReq)
|
||||
}
|
||||
|
||||
@server (
|
||||
prefix: /api/radio
|
||||
group: subscription
|
||||
jwt: Auth
|
||||
)
|
||||
service radio-api {
|
||||
@doc "我的订阅列表"
|
||||
@handler GetMySubscriptions
|
||||
get /subscription/list
|
||||
}
|
||||
|
||||
@server (
|
||||
prefix: /api/radio
|
||||
group: interaction
|
||||
jwt: Auth
|
||||
)
|
||||
service radio-api {
|
||||
@doc "点赞/取消点赞"
|
||||
@handler ToggleLike
|
||||
post /interaction/like (LikeReq)
|
||||
|
||||
@doc "收藏/取消收藏"
|
||||
@handler ToggleFavorite
|
||||
post /interaction/favorite (FavoriteReq)
|
||||
|
||||
@doc "评论节目"
|
||||
@handler CommentProgram
|
||||
post /interaction/comment (CommentReq)
|
||||
|
||||
@doc "记录播放历史"
|
||||
@handler RecordHistory
|
||||
post /interaction/history (HistoryReq)
|
||||
|
||||
@doc "播放历史列表"
|
||||
@handler GetHistoryList
|
||||
post /interaction/history/list (HistoryListReq)
|
||||
|
||||
@doc "我的收藏列表"
|
||||
@handler GetFavoriteList
|
||||
post /interaction/favorite/list (HistoryListReq)
|
||||
}
|
||||
|
||||
@server (
|
||||
prefix: /api/radio
|
||||
group: pay
|
||||
jwt: Auth
|
||||
)
|
||||
service radio-api {
|
||||
@doc "创建支付订单"
|
||||
@handler CreatePayOrder
|
||||
post /pay/create (CreatePayOrderReq)
|
||||
}
|
||||
|
||||
@server (
|
||||
prefix: /api/radio
|
||||
group: vip
|
||||
jwt: Auth
|
||||
)
|
||||
service radio-api {
|
||||
@doc "VIP配置列表"
|
||||
@handler GetVipConfigList
|
||||
post /vip/list (VipConfigListReq)
|
||||
|
||||
@doc "我的VIP信息"
|
||||
@handler GetMyVipInfo
|
||||
get /vip/info
|
||||
}
|
||||
|
||||
@server (
|
||||
prefix: /api/radio
|
||||
group: analytics
|
||||
jwt: Auth
|
||||
)
|
||||
service radio-api {
|
||||
@doc "数据概览"
|
||||
@handler GetAnalyticsOverview
|
||||
post /analytics/overview (AnalyticsReq)
|
||||
|
||||
@doc "频道数据"
|
||||
@handler GetChannelAnalytics
|
||||
post /analytics/channel (AnalyticsReq)
|
||||
|
||||
@doc "用户数据"
|
||||
@handler GetUserAnalytics
|
||||
post /analytics/user (AnalyticsReq)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user