Files
qnc-server-v3/app/main/api/desc/front/agent.api
2025-12-13 17:44:18 +08:00

602 lines
24 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

syntax = "v1"
info (
title: "代理服务"
desc: "新代理系统接口"
version: "v1"
)
@server (
prefix: api/v1/agent
group: agent
)
service main {
// 获取推广链接数据
@handler GetLinkData
get /link (GetLinkDataReq) returns (GetLinkDataResp)
}
@server (
prefix: api/v1/agent
group: agent
middleware: AuthInterceptor
)
service main {
// 通过邀请码申请成为代理(必须提供邀请码)
@handler ApplyForAgent
post /apply (AgentApplyReq) returns (AgentApplyResp)
// 通过邀请码注册(同时注册用户和代理)
@handler RegisterByInviteCode
post /register/invite (RegisterByInviteCodeReq) returns (RegisterByInviteCodeResp)
}
type (
GetLinkDataReq {
LinkIdentifier string `form:"link_identifier"` // 推广链接标识
}
GetLinkDataResp {
AgentId string `json:"agent_id"` // 代理ID
ProductId string `json:"product_id"` // 产品ID
SetPrice float64 `json:"set_price"` // 代理设定价格
ActualBasePrice float64 `json:"actual_base_price"` // 实际底价
ProductName string `json:"product_name"` // 产品名称
ProductEn string `json:"product_en"` // 产品英文标识
SellPrice float64 `json:"sell_price"` // 销售价格(使用代理设定价格)
Description string `json:"description"` // 产品描述
Features []Feature `json:"features"` // 产品功能列表
}
AgentApplyReq {
Region string `json:"region,optional"`
Mobile string `json:"mobile"`
Code string `json:"code"`
Referrer string `json:"referrer"`
InviteCode string `json:"invite_code,optional"`
AgentCode int64 `json:"agent_code,optional"`
}
AgentApplyResp {
AccessToken string `json:"accessToken"`
AccessExpire int64 `json:"accessExpire"`
RefreshAfter int64 `json:"refreshAfter"`
AgentCode int64 `json:"agent_code"`
}
// 通过邀请码注册
RegisterByInviteCodeReq {
Referrer string `json:"referrer"`
InviteCode string `json:"invite_code,optional"`
AgentCode int64 `json:"agent_code,optional"`
Mobile string `json:"mobile"`
Code string `json:"code"`
Region string `json:"region,optional"`
WechatId string `json:"wechat_id,optional"`
}
RegisterByInviteCodeResp {
AccessToken string `json:"accessToken"`
AccessExpire int64 `json:"accessExpire"`
RefreshAfter int64 `json:"refreshAfter"`
AgentId string `json:"agent_id"` // 代理ID
Level int64 `json:"level"` // 代理等级
LevelName string `json:"level_name"` // 等级名称
AgentCode int64 `json:"agent_code"`
}
// 生成邀请码
GenerateInviteCodeReq {
Count int64 `json:"count"` // 生成数量
ExpireDays int64 `json:"expire_days,optional"` // 过期天数可选0表示不过期
Remark string `json:"remark,optional"` // 备注(可选)
}
GenerateInviteCodeResp {
Codes []string `json:"codes"` // 生成的邀请码列表
}
// 获取邀请码列表
GetInviteCodeListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"page_size"` // 每页数量
Status int64 `form:"status,optional"` // 状态(可选)
}
GetInviteCodeListResp {
Total int64 `json:"total"` // 总数
List []InviteCodeItem `json:"list"` // 列表
}
InviteCodeItem {
Id string `json:"id"` // 记录ID
Code string `json:"code"` // 邀请码
TargetLevel int64 `json:"target_level"` // 目标等级
Status int64 `json:"status"` // 状态0=未使用1=已使用2=已失效
UsedTime string `json:"used_time"` // 使用时间
ExpireTime string `json:"expire_time"` // 过期时间
Remark string `json:"remark"` // 备注
CreateTime string `json:"create_time"` // 创建时间
}
// 删除邀请码
DeleteInviteCodeReq {
Id string `json:"id"` // 邀请码ID
}
DeleteInviteCodeResp {}
// 获取邀请链接
GetInviteLinkReq {
InviteCode string `form:"invite_code"` // 邀请码
TargetPath string `form:"target_path,optional"` // 目标地址(可选,默认为注册页面)
}
GetInviteLinkResp {
InviteLink string `json:"invite_link"` // 邀请链接
}
// 获取代理等级特权信息
GetLevelPrivilegeResp {
Levels []LevelPrivilegeItem `json:"levels"`
UpgradeToGoldFee float64 `json:"upgrade_to_gold_fee"`
UpgradeToDiamondFee float64 `json:"upgrade_to_diamond_fee"`
UpgradeToGoldRebate float64 `json:"upgrade_to_gold_rebate"`
UpgradeToDiamondRebate float64 `json:"upgrade_to_diamond_rebate"`
}
LevelPrivilegeItem {
Level int64 `json:"level"` // 等级1=普通2=黄金3=钻石
LevelName string `json:"level_name"` // 等级名称
LevelBonus float64 `json:"level_bonus"` // 等级加成(元)
PriceReduction float64 `json:"price_reduction"` // 底价降低(元,相对于当前等级)
PromoteRebate string `json:"promote_rebate"` // 推广返佣说明
MaxPromoteRebate float64 `json:"max_promote_rebate"` // 最高推广返佣金额(元)
UpgradeRebate string `json:"upgrade_rebate"` // 下级升级返佣说明
Privileges []string `json:"privileges"` // 特权列表
CanUpgradeSubordinate bool `json:"can_upgrade_subordinate"` // 是否可以升级下级
}
)
// ============================================
// 需要登录的接口
// ============================================
@server (
prefix: api/v1/agent
group: agent
jwt: JwtAuth
middleware: UserAuthInterceptor
)
service main {
// 查看代理信息
@handler GetAgentInfo
get /info returns (AgentInfoResp)
// 生成推广链接
@handler GeneratingLink
post /generating_link (AgentGeneratingLinkReq) returns (AgentGeneratingLinkResp)
// 获取产品配置
@handler GetAgentProductConfig
get /product_config returns (AgentProductConfigResp)
// 获取团队统计
@handler GetTeamStatistics
get /team/statistics returns (TeamStatisticsResp)
// 获取转化率统计
@handler GetConversionRate
get /conversion/rate returns (ConversionRateResp)
// 获取下级列表
@handler GetSubordinateList
get /subordinate/list (GetSubordinateListReq) returns (GetSubordinateListResp)
// 获取下级贡献详情
@handler GetSubordinateContributionDetail
get /subordinate/contribution/detail (GetSubordinateContributionDetailReq) returns (GetSubordinateContributionDetailResp)
// 获取团队列表
@handler GetTeamList
get /team/list (GetTeamListReq) returns (GetTeamListResp)
// 获取收益信息
@handler GetRevenueInfo
get /revenue returns (GetRevenueInfoResp)
// 获取佣金记录
@handler GetCommissionList
get /commission/list (GetCommissionListReq) returns (GetCommissionListResp)
// 获取返佣记录(推广返佣)
@handler GetRebateList
get /rebate/list (GetRebateListReq) returns (GetRebateListResp)
// 获取升级返佣记录
@handler GetUpgradeRebateList
get /rebate/upgrade/list (GetUpgradeRebateListReq) returns (GetUpgradeRebateListResp)
// 获取升级记录
@handler GetUpgradeList
get /upgrade/list (GetUpgradeListReq) returns (GetUpgradeListResp)
// 申请升级
@handler ApplyUpgrade
post /upgrade/apply (ApplyUpgradeReq) returns (ApplyUpgradeResp)
// 钻石代理升级下级
@handler UpgradeSubordinate
post /upgrade/subordinate (UpgradeSubordinateReq) returns (UpgradeSubordinateResp)
// 获取提现列表
@handler GetWithdrawalList
get /withdrawal/list (GetWithdrawalListReq) returns (GetWithdrawalListResp)
// 申请提现
@handler ApplyWithdrawal
post /withdrawal/apply (ApplyWithdrawalReq) returns (ApplyWithdrawalResp)
// 实名认证
@handler RealNameAuth
post /real_name (RealNameAuthReq) returns (RealNameAuthResp)
// 生成邀请码
@handler GenerateInviteCode
post /invite_code/generate (GenerateInviteCodeReq) returns (GenerateInviteCodeResp)
// 获取邀请码列表
@handler GetInviteCodeList
get /invite_code/list (GetInviteCodeListReq) returns (GetInviteCodeListResp)
// 删除邀请码
@handler DeleteInviteCode
post /invite_code/delete (DeleteInviteCodeReq) returns (DeleteInviteCodeResp)
// 获取邀请链接(根据邀请码生成)
@handler GetInviteLink
get /invite_link (GetInviteLinkReq) returns (GetInviteLinkResp)
// 获取代理等级特权信息
@handler GetLevelPrivilege
get /level/privilege returns (GetLevelPrivilegeResp)
// 获取推广查询报告列表
@handler GetPromotionQueryList
get /promotion/query/list (GetPromotionQueryListReq) returns (GetPromotionQueryListResp)
}
type (
// 代理信息
AgentInfoResp {
AgentId string `json:"agent_id"`
Level int64 `json:"level"`
LevelName string `json:"level_name"`
Region string `json:"region"`
Mobile string `json:"mobile"`
WechatId string `json:"wechat_id"`
TeamLeaderId string `json:"team_leader_id"`
IsRealName bool `json:"is_real_name"`
AgentCode int64 `json:"agent_code"`
}
// 生成推广链接
AgentGeneratingLinkReq {
ProductId string `json:"product_id"` // 产品ID
SetPrice float64 `json:"set_price"` // 设定价格
TargetPath string `json:"target_path,optional"` // 目标地址(可选,默认为推广报告页面)
}
AgentGeneratingLinkResp {
LinkIdentifier string `json:"link_identifier"` // 推广链接标识
FullLink string `json:"full_link"` // 完整短链URL
}
// 产品配置
AgentProductConfigResp {
List []ProductConfigItem `json:"list"`
}
ProductConfigItem {
ProductId string `json:"product_id"` // 产品ID
ProductName string `json:"product_name"` // 产品名称
ProductEn string `json:"product_en"` // 产品英文标识
ActualBasePrice float64 `json:"actual_base_price"` // 实际底价
PriceRangeMin float64 `json:"price_range_min"` // 最低价格
PriceRangeMax float64 `json:"price_range_max"` // 最高价格
PriceThreshold float64 `json:"price_threshold"` // 提价标准阈值
PriceFeeRate float64 `json:"price_fee_rate"` // 提价手续费比例
}
// 团队统计
TeamStatisticsResp {
TotalCount int64 `json:"total_count"` // 团队总人数(不包括自己)
DirectCount int64 `json:"direct_count"` // 直接下级数量
IndirectCount int64 `json:"indirect_count"` // 间接下级数量
GoldCount int64 `json:"gold_count"` // 黄金代理数量
NormalCount int64 `json:"normal_count"` // 普通代理数量
TodayNewMembers int64 `json:"today_new_members"` // 今日新增成员
MonthNewMembers int64 `json:"month_new_members"` // 本月新增成员
}
// 转化率统计
ConversionRateResp {
MyConversionRate ConversionRateData `json:"my_conversion_rate"` // 我的转化率
SubordinateConversionRate ConversionRateData `json:"subordinate_conversion_rate"` // 我的下级转化率
}
ConversionRateData {
Daily []PeriodConversionData `json:"daily"` // 日统计(今日、昨日、前日)
Weekly []PeriodConversionData `json:"weekly"` // 周统计(这周、前一周、前两周)
Monthly []PeriodConversionData `json:"monthly"` // 月统计(本月、上月、前两月)
}
PeriodConversionData {
PeriodLabel string `json:"period_label"` // 时间段标签(如:今日、昨日、前日)
QueryUsers int64 `json:"query_users"` // 查询订单数(订单数量,不是用户数)
PaidUsers int64 `json:"paid_users"` // 付费订单数(订单数量,不是用户数)
TotalAmount float64 `json:"total_amount"` // 总金额(已支付订单的总金额)
QueryUserCount int64 `json:"query_user_count"` // 查询用户数去重user_id后的用户数量
PaidUserCount int64 `json:"paid_user_count"` // 付费用户数去重user_id后的用户数量
}
// 下级列表
GetSubordinateListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"page_size"` // 每页数量
}
GetSubordinateListResp {
Total int64 `json:"total"` // 总数
List []SubordinateItem `json:"list"` // 列表
}
SubordinateItem {
AgentId string `json:"agent_id"` // 代理ID
Level int64 `json:"level"` // 等级
LevelName string `json:"level_name"` // 等级名称
Mobile string `json:"mobile"` // 手机号
CreateTime string `json:"create_time"` // 创建时间
TotalOrders int64 `json:"total_orders"` // 总订单数
TotalAmount float64 `json:"total_amount"` // 总金额
}
// 下级贡献详情
GetSubordinateContributionDetailReq {
SubordinateId string `form:"subordinate_id"` // 下级代理ID
Page int64 `form:"page"` // 页码
PageSize int64 `form:"page_size"` // 每页数量
TabType string `form:"tab_type,optional"` // 标签页类型order=订单列表invite=邀请列表
}
GetSubordinateContributionDetailResp {
Mobile string `json:"mobile"` // 手机号
LevelName string `json:"level_name"` // 等级名称
CreateTime string `json:"create_time"` // 创建时间
OrderStats OrderStatistics `json:"order_stats"` // 订单统计(仅统计有返佣的订单)
RebateStats RebateStatistics `json:"rebate_stats"` // 返佣统计
InviteStats InviteStatistics `json:"invite_stats"` // 邀请统计
OrderList []OrderItem `json:"order_list"` // 订单列表(仅有贡献的订单)
InviteList []InviteItem `json:"invite_list"` // 邀请列表
OrderListTotal int64 `json:"order_list_total"` // 订单列表总数
InviteListTotal int64 `json:"invite_list_total"` // 邀请列表总数
}
OrderStatistics {
TotalOrders int64 `json:"total_orders"` // 总订单量(仅统计有返佣的订单)
MonthOrders int64 `json:"month_orders"` // 月订单
TodayOrders int64 `json:"today_orders"` // 今日订单
}
RebateStatistics {
TotalRebateAmount float64 `json:"total_rebate_amount"` // 总贡献返佣金额
TodayRebateAmount float64 `json:"today_rebate_amount"` // 今日贡献返佣金额
MonthRebateAmount float64 `json:"month_rebate_amount"` // 月贡献返佣金额
}
InviteStatistics {
TotalInvites int64 `json:"total_invites"` // 总的邀请
TodayInvites int64 `json:"today_invites"` // 今日邀请
MonthInvites int64 `json:"month_invites"` // 月邀请
}
OrderItem {
OrderNo string `json:"order_no"` // 订单号
ProductId string `json:"product_id"` // 产品ID
ProductName string `json:"product_name"` // 产品名称
OrderAmount float64 `json:"order_amount"` // 订单金额
RebateAmount float64 `json:"rebate_amount"` // 返佣金额
CreateTime string `json:"create_time"` // 创建时间
}
InviteItem {
AgentId string `json:"agent_id"` // 代理ID
Level int64 `json:"level"` // 等级
LevelName string `json:"level_name"` // 等级名称
Mobile string `json:"mobile"` // 手机号
CreateTime string `json:"create_time"` // 邀请时间
}
// 团队列表
GetTeamListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"page_size"` // 每页数量
Mobile string `form:"mobile,optional"` // 手机号(可选,用于搜索)
}
GetTeamListResp {
Statistics TeamStatistics `json:"statistics"` // 统计数据
Total int64 `json:"total"` // 总数
List []TeamMemberItem `json:"list"` // 列表
}
TeamStatistics {
TotalMembers int64 `json:"total_members"` // 团队成员总数
TodayNewMembers int64 `json:"today_new_members"` // 团队人员今日新增
MonthNewMembers int64 `json:"month_new_members"` // 团队人员月新增
TotalQueries int64 `json:"total_queries"` // 团队总查询总量
TodayPromotions int64 `json:"today_promotions"` // 团队今日推广量
MonthPromotions int64 `json:"month_promotions"` // 团队月推广量
TotalEarnings float64 `json:"total_earnings"` // 依靠团队得到的总收益
TodayEarnings float64 `json:"today_earnings"` // 今日收益
MonthEarnings float64 `json:"month_earnings"` // 月收益
}
TeamMemberItem {
AgentId string `json:"agent_id"` // 代理ID
Level int64 `json:"level"` // 等级
LevelName string `json:"level_name"` // 等级名称
Mobile string `json:"mobile"` // 手机号
CreateTime string `json:"create_time"` // 加入团队时间
TodayQueries int64 `json:"today_queries"` // 当日查询量
TotalQueries int64 `json:"total_queries"` // 总查询量
TotalRebateAmount float64 `json:"total_rebate_amount"` // 返佣给我的总金额
TodayRebateAmount float64 `json:"today_rebate_amount"` // 返佣给我的今日金额
TotalInvites int64 `json:"total_invites"` // 邀请加入团队的总人数
TodayInvites int64 `json:"today_invites"` // 邀请加入团队的今日人数
IsDirect bool `json:"is_direct"` // 是否直接下级
}
// 收益信息
GetRevenueInfoResp {
Balance float64 `json:"balance"` // 可用余额
FrozenBalance float64 `json:"frozen_balance"` // 冻结余额
TotalEarnings float64 `json:"total_earnings"` // 累计收益(钱包总收益)
WithdrawnAmount float64 `json:"withdrawn_amount"` // 累计提现
CommissionTotal float64 `json:"commission_total"` // 佣金累计总收益(推广订单获得的佣金)
CommissionToday float64 `json:"commission_today"` // 佣金今日收益
CommissionMonth float64 `json:"commission_month"` // 佣金本月收益
RebateTotal float64 `json:"rebate_total"` // 返佣累计总收益(包括推广返佣和升级返佣)
RebateToday float64 `json:"rebate_today"` // 返佣今日收益
RebateMonth float64 `json:"rebate_month"` // 返佣本月收益
}
// 佣金记录
GetCommissionListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"page_size"` // 每页数量
}
GetCommissionListResp {
Total int64 `json:"total"` // 总数
List []CommissionItem `json:"list"` // 列表
}
CommissionItem {
Id string `json:"id"` // 记录ID
OrderId string `json:"order_id"` // 订单ID
OrderNo string `json:"order_no"` // 订单号
ProductName string `json:"product_name"` // 产品名称
Amount float64 `json:"amount"` // 佣金金额
Status int64 `json:"status"` // 状态1=已发放2=已冻结3=已取消
CreateTime string `json:"create_time"` // 创建时间
}
// 返佣记录(推广返佣)
GetRebateListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"page_size"` // 每页数量
RebateType *int64 `form:"rebate_type,optional"` // 返佣类型可选1=直接上级返佣2=钻石上级返佣3=黄金上级返佣
}
GetRebateListResp {
Total int64 `json:"total"` // 总数
List []RebateItem `json:"list"` // 列表
}
RebateItem {
Id string `json:"id"` // 记录ID
SourceAgentId string `json:"source_agent_id"` // 来源代理ID
SourceAgentMobile string `json:"source_agent_mobile"` // 来源代理手机号
SourceAgentLevel int64 `json:"source_agent_level"` // 来源代理等级1=普通2=黄金3=钻石
OrderId string `json:"order_id"` // 订单ID
OrderNo string `json:"order_no"` // 订单号
RebateType int64 `json:"rebate_type"` // 返佣类型1=直接上级2=钻石上级3=黄金上级
Amount float64 `json:"amount"` // 返佣金额
CreateTime string `json:"create_time"` // 创建时间
}
// 升级返佣记录
GetUpgradeRebateListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"page_size"` // 每页数量
}
GetUpgradeRebateListResp {
Total int64 `json:"total"` // 总数
List []UpgradeRebateItem `json:"list"` // 列表
}
UpgradeRebateItem {
Id string `json:"id"` // 记录ID
SourceAgentId string `json:"source_agent_id"` // 来源代理ID升级的代理
SourceAgentMobile string `json:"source_agent_mobile"` // 来源代理手机号
OrderNo string `json:"order_no"` // 订单号
FromLevel int64 `json:"from_level"` // 原等级
ToLevel int64 `json:"to_level"` // 目标等级
Amount float64 `json:"amount"` // 返佣金额
CreateTime string `json:"create_time"` // 创建时间
}
// 升级记录
GetUpgradeListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"page_size"` // 每页数量
}
GetUpgradeListResp {
Total int64 `json:"total"` // 总数
List []UpgradeItem `json:"list"` // 列表
}
UpgradeItem {
Id string `json:"id"` // 记录ID
AgentId string `json:"agent_id"` // 代理ID
FromLevel int64 `json:"from_level"` // 原等级
ToLevel int64 `json:"to_level"` // 目标等级
UpgradeType int64 `json:"upgrade_type"` // 升级类型1=自主付费2=钻石升级
UpgradeFee float64 `json:"upgrade_fee"` // 升级费用
RebateAmount float64 `json:"rebate_amount"` // 返佣金额
Status int64 `json:"status"` // 状态1=待支付2=已支付3=已完成4=已取消
CreateTime string `json:"create_time"` // 创建时间
}
// 申请升级
ApplyUpgradeReq {
ToLevel int64 `json:"to_level"` // 目标等级2=黄金3=钻石
}
ApplyUpgradeResp {
UpgradeId string `json:"upgrade_id"` // 升级记录ID
OrderNo string `json:"order_no"` // 支付订单号
}
// 钻石升级下级
UpgradeSubordinateReq {
SubordinateId string `json:"subordinate_id"` // 下级代理ID
ToLevel int64 `json:"to_level"` // 目标等级只能是2=黄金)
}
UpgradeSubordinateResp {
Success bool `json:"success"`
}
// 提现列表
GetWithdrawalListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"page_size"` // 每页数量
}
GetWithdrawalListResp {
Total int64 `json:"total"` // 总数
List []WithdrawalItem `json:"list"` // 列表
}
WithdrawalItem {
Id string `json:"id"` // 记录ID
WithdrawalNo string `json:"withdrawal_no"` // 提现单号
Amount float64 `json:"amount"` // 提现金额
TaxAmount float64 `json:"tax_amount"` // 税费金额
ActualAmount float64 `json:"actual_amount"` // 实际到账金额
Status int64 `json:"status"` // 状态1=待审核2=审核通过3=审核拒绝4=提现中5=提现成功6=提现失败
PayeeAccount string `json:"payee_account"` // 收款账户
PayeeName string `json:"payee_name"` // 收款人姓名
Remark string `json:"remark"` // 备注
CreateTime string `json:"create_time"` // 创建时间
}
// 申请提现
ApplyWithdrawalReq {
Amount float64 `json:"amount"` // 提现金额
PayeeAccount string `json:"payee_account"` // 收款账户
PayeeName string `json:"payee_name"` // 收款人姓名
}
ApplyWithdrawalResp {
WithdrawalId string `json:"withdrawal_id"` // 提现记录ID
WithdrawalNo string `json:"withdrawal_no"` // 提现单号
}
// 实名认证
RealNameAuthReq {
Name string `json:"name"` // 姓名
IdCard string `json:"id_card"` // 身份证号
Mobile string `json:"mobile"` // 手机号
Code string `json:"code"` // 验证码
}
RealNameAuthResp {
Status string `json:"status"` // 状态pending=待审核approved=已通过rejected=已拒绝
}
// 推广查询列表
GetPromotionQueryListReq {
Page int64 `form:"page"` // 页码
PageSize int64 `form:"page_size"` // 每页数量
}
GetPromotionQueryListResp {
Total int64 `json:"total"` // 总数
List []PromotionQueryItem `json:"list"` // 列表
}
PromotionQueryItem {
Id string `json:"id"` // 查询ID
OrderId string `json:"order_id"` // 订单ID
ProductName string `json:"product_name"` // 产品名称
CreateTime string `json:"create_time"` // 创建时间
QueryState string `json:"query_state"` // 查询状态
}
)
// ============================================
// 短链重定向接口公开访问不需要认证和api前缀
// ============================================
@server (
group: agent
)
service main {
// 短链重定向
@handler ShortLinkRedirect
get /s/:shortCode returns (ShortLinkRedirectResp)
}
type (
ShortLinkRedirectResp {}
)