1391 lines
34 KiB
YAML
1391 lines
34 KiB
YAML
basePath: /
|
||
definitions:
|
||
handlers.AdminChatPayload:
|
||
properties:
|
||
content:
|
||
type: string
|
||
type: object
|
||
handlers.AdminVerifyTokenRequest:
|
||
properties:
|
||
token:
|
||
type: string
|
||
type: object
|
||
handlers.ChatMessagePayload:
|
||
properties:
|
||
content:
|
||
type: string
|
||
type: object
|
||
handlers.CheckoutPayload:
|
||
properties:
|
||
contactEmail:
|
||
type: string
|
||
contactPhone:
|
||
type: string
|
||
note:
|
||
type: string
|
||
notifyEmail:
|
||
type: string
|
||
paymentMethod:
|
||
type: string
|
||
productId:
|
||
type: string
|
||
quantity:
|
||
type: integer
|
||
type: object
|
||
handlers.MaintenancePayload:
|
||
properties:
|
||
maintenance:
|
||
type: boolean
|
||
reason:
|
||
type: string
|
||
type: object
|
||
handlers.ProductPayload:
|
||
properties:
|
||
active:
|
||
type: boolean
|
||
codes:
|
||
items:
|
||
type: string
|
||
type: array
|
||
coverUrl:
|
||
type: string
|
||
deliveryMode:
|
||
type: string
|
||
description:
|
||
type: string
|
||
discountPrice:
|
||
type: number
|
||
fixedContent:
|
||
type: string
|
||
fulfillmentType:
|
||
type: string
|
||
maxPerAccount:
|
||
type: integer
|
||
name:
|
||
type: string
|
||
paymentQrUrls:
|
||
items:
|
||
type: string
|
||
type: array
|
||
price:
|
||
type: number
|
||
requireLogin:
|
||
type: boolean
|
||
screenshotUrls:
|
||
items:
|
||
type: string
|
||
type: array
|
||
showContact:
|
||
type: boolean
|
||
showNote:
|
||
type: boolean
|
||
tags:
|
||
type: string
|
||
type: object
|
||
handlers.SwaggerBoolOK:
|
||
properties:
|
||
ok:
|
||
type: boolean
|
||
type: object
|
||
handlers.SwaggerBoolOKWrap:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/handlers.SwaggerBoolOK'
|
||
type: object
|
||
handlers.SwaggerCancelMsg:
|
||
properties:
|
||
message:
|
||
type: string
|
||
ok:
|
||
type: boolean
|
||
type: object
|
||
handlers.SwaggerCancelWrap:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/handlers.SwaggerCancelMsg'
|
||
type: object
|
||
handlers.SwaggerCheckoutData:
|
||
properties:
|
||
orderId:
|
||
type: string
|
||
paymentExpectedTotal:
|
||
type: number
|
||
paymentExpiresAt:
|
||
type: string
|
||
paymentMethod:
|
||
type: string
|
||
paymentQrUrls:
|
||
items:
|
||
type: string
|
||
type: array
|
||
productId:
|
||
type: string
|
||
productQty:
|
||
type: integer
|
||
qrCodeUrl:
|
||
type: string
|
||
status:
|
||
type: string
|
||
viewCount:
|
||
type: integer
|
||
type: object
|
||
handlers.SwaggerCheckoutWrap:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/handlers.SwaggerCheckoutData'
|
||
type: object
|
||
handlers.SwaggerConfirmData:
|
||
properties:
|
||
deliveredCodes:
|
||
items:
|
||
type: string
|
||
type: array
|
||
deliveryMode:
|
||
type: string
|
||
isManual:
|
||
type: boolean
|
||
orderId:
|
||
type: string
|
||
status:
|
||
type: string
|
||
type: object
|
||
handlers.SwaggerConfirmWrap:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/handlers.SwaggerConfirmData'
|
||
type: object
|
||
handlers.SwaggerErrorBody:
|
||
properties:
|
||
error:
|
||
type: string
|
||
type: object
|
||
handlers.SwaggerMaintenanceData:
|
||
properties:
|
||
maintenance:
|
||
type: boolean
|
||
reason:
|
||
type: string
|
||
type: object
|
||
handlers.SwaggerMaintenanceWrap:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/handlers.SwaggerMaintenanceData'
|
||
type: object
|
||
handlers.SwaggerMessagesInner:
|
||
properties:
|
||
messages:
|
||
items:
|
||
$ref: '#/definitions/models.ChatMessage'
|
||
type: array
|
||
type: object
|
||
handlers.SwaggerMessagesWrap:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/handlers.SwaggerMessagesInner'
|
||
type: object
|
||
handlers.SwaggerOneChatMsgWrap:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/handlers.SwaggerSingleChatWrap'
|
||
type: object
|
||
handlers.SwaggerOrdersBody:
|
||
properties:
|
||
data:
|
||
items:
|
||
$ref: '#/definitions/models.Order'
|
||
type: array
|
||
type: object
|
||
handlers.SwaggerPaymentStatusData:
|
||
properties:
|
||
expectedTotal:
|
||
type: number
|
||
paymentExpiresAt:
|
||
type: string
|
||
paymentMethod:
|
||
type: string
|
||
status:
|
||
type: string
|
||
type: object
|
||
handlers.SwaggerPaymentStatusWrap:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/handlers.SwaggerPaymentStatusData'
|
||
type: object
|
||
handlers.SwaggerProductListBody:
|
||
properties:
|
||
data:
|
||
items:
|
||
$ref: '#/definitions/models.Product'
|
||
type: array
|
||
type: object
|
||
handlers.SwaggerProductOneBody:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/models.Product'
|
||
type: object
|
||
handlers.SwaggerProductViewData:
|
||
properties:
|
||
counted:
|
||
type: boolean
|
||
id:
|
||
type: string
|
||
viewCount:
|
||
type: integer
|
||
type: object
|
||
handlers.SwaggerProductViewWrap:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/handlers.SwaggerProductViewData'
|
||
type: object
|
||
handlers.SwaggerSMTPWrap:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/storage.SMTPConfig'
|
||
type: object
|
||
handlers.SwaggerSingleChatWrap:
|
||
properties:
|
||
message:
|
||
$ref: '#/definitions/models.ChatMessage'
|
||
type: object
|
||
handlers.SwaggerStatsData:
|
||
properties:
|
||
totalOrders:
|
||
type: integer
|
||
totalVisits:
|
||
type: integer
|
||
type: object
|
||
handlers.SwaggerStatsWrap:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/handlers.SwaggerStatsData'
|
||
type: object
|
||
handlers.SwaggerStringOKBody:
|
||
properties:
|
||
data:
|
||
type: string
|
||
type: object
|
||
handlers.SwaggerValidBody:
|
||
properties:
|
||
valid:
|
||
type: boolean
|
||
type: object
|
||
handlers.SwaggerVisitData:
|
||
properties:
|
||
counted:
|
||
type: boolean
|
||
totalVisits:
|
||
type: integer
|
||
type: object
|
||
handlers.SwaggerVisitWrap:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/handlers.SwaggerVisitData'
|
||
type: object
|
||
handlers.SwaggerWebhookMengyaResp:
|
||
properties:
|
||
matched:
|
||
type: boolean
|
||
matched_order_id:
|
||
type: string
|
||
ok:
|
||
type: boolean
|
||
type: object
|
||
handlers.SwaggerWishlistItems:
|
||
properties:
|
||
items:
|
||
items:
|
||
type: string
|
||
type: array
|
||
type: object
|
||
handlers.SwaggerWishlistWrap:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/handlers.SwaggerWishlistItems'
|
||
type: object
|
||
handlers.TogglePayload:
|
||
properties:
|
||
active:
|
||
type: boolean
|
||
type: object
|
||
handlers.WishlistItemPayload:
|
||
properties:
|
||
productId:
|
||
type: string
|
||
type: object
|
||
models.ChatMessage:
|
||
properties:
|
||
accountId:
|
||
type: string
|
||
accountName:
|
||
type: string
|
||
content:
|
||
type: string
|
||
fromAdmin:
|
||
type: boolean
|
||
id:
|
||
type: string
|
||
sentAt:
|
||
type: string
|
||
type: object
|
||
models.Order:
|
||
properties:
|
||
contactEmail:
|
||
type: string
|
||
contactPhone:
|
||
type: string
|
||
createdAt:
|
||
type: string
|
||
deliveredCodes:
|
||
items:
|
||
type: string
|
||
type: array
|
||
deliveryMode:
|
||
type: string
|
||
id:
|
||
type: string
|
||
note:
|
||
type: string
|
||
notifyEmail:
|
||
type: string
|
||
paymentExpectedTotal:
|
||
type: number
|
||
paymentExpiresAt:
|
||
type: string
|
||
paymentMethod:
|
||
type: string
|
||
productId:
|
||
type: string
|
||
productName:
|
||
type: string
|
||
quantity:
|
||
type: integer
|
||
status:
|
||
type: string
|
||
userAccount:
|
||
type: string
|
||
userName:
|
||
type: string
|
||
type: object
|
||
models.Product:
|
||
properties:
|
||
active:
|
||
type: boolean
|
||
codes:
|
||
items:
|
||
type: string
|
||
type: array
|
||
coverUrl:
|
||
type: string
|
||
createdAt:
|
||
type: string
|
||
deliveryMode:
|
||
type: string
|
||
description:
|
||
type: string
|
||
discountPrice:
|
||
type: number
|
||
fixedContent:
|
||
type: string
|
||
fulfillmentType:
|
||
type: string
|
||
id:
|
||
type: string
|
||
maxPerAccount:
|
||
type: integer
|
||
name:
|
||
type: string
|
||
paymentQrUrls:
|
||
description: PaymentQrURLs 萌芽支付收款码图片链接(可多条)。
|
||
items:
|
||
type: string
|
||
type: array
|
||
price:
|
||
type: number
|
||
quantity:
|
||
type: integer
|
||
requireLogin:
|
||
type: boolean
|
||
screenshotUrls:
|
||
items:
|
||
type: string
|
||
type: array
|
||
showContact:
|
||
type: boolean
|
||
showNote:
|
||
type: boolean
|
||
tags:
|
||
items:
|
||
type: string
|
||
type: array
|
||
totalSold:
|
||
type: integer
|
||
updatedAt:
|
||
type: string
|
||
verificationUrl:
|
||
type: string
|
||
viewCount:
|
||
type: integer
|
||
type: object
|
||
storage.SMTPConfig:
|
||
properties:
|
||
email:
|
||
type: string
|
||
enabled:
|
||
type: boolean
|
||
fromName:
|
||
type: string
|
||
host:
|
||
type: string
|
||
password:
|
||
type: string
|
||
port:
|
||
type: string
|
||
type: object
|
||
host: localhost:8080
|
||
info:
|
||
contact: {}
|
||
description: 商品、下单、站点统计、收藏与客服聊天;用户登录由萌芽账户认证中心(SproutGate)校验。监听地址以 HTTP_LISTEN_ADDR
|
||
为准。
|
||
title: 萌芽小店 API
|
||
version: 1.0.0-go
|
||
paths:
|
||
/:
|
||
get:
|
||
description: 返回服务描述、主要路径指引与版本(非 OpenAPI 详尽列表,完整契约见 /swagger)。
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
summary: API 根信息与端点索引
|
||
tags:
|
||
- 元信息
|
||
/api/admin/chat:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- AdminToken: []
|
||
summary: 全部会话列表
|
||
tags:
|
||
- 管理端-聊天
|
||
/api/admin/chat/{account}:
|
||
delete:
|
||
parameters:
|
||
- description: 用户账号
|
||
in: path
|
||
name: account
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerBoolOKWrap'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- AdminToken: []
|
||
summary: 清空会话
|
||
tags:
|
||
- 管理端-聊天
|
||
get:
|
||
parameters:
|
||
- description: 用户账号
|
||
in: path
|
||
name: account
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerMessagesWrap'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- AdminToken: []
|
||
summary: 指定用户聊天记录
|
||
tags:
|
||
- 管理端-聊天
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: 用户账号
|
||
in: path
|
||
name: account
|
||
required: true
|
||
type: string
|
||
- description: 回复内容
|
||
in: body
|
||
name: body
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.AdminChatPayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerOneChatMsgWrap'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- AdminToken: []
|
||
summary: 管理员回复
|
||
tags:
|
||
- 管理端-聊天
|
||
/api/admin/orders:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerOrdersBody'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- AdminToken: []
|
||
summary: 全部订单(管理)
|
||
tags:
|
||
- 管理端-订单
|
||
/api/admin/orders/{id}:
|
||
delete:
|
||
parameters:
|
||
- description: 订单 ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerBoolOKWrap'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- AdminToken: []
|
||
summary: 删除订单
|
||
tags:
|
||
- 管理端-订单
|
||
/api/admin/products:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerProductListBody'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- AdminToken: []
|
||
summary: 全部商品(管理)
|
||
tags:
|
||
- 管理端-商品
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: 商品字段
|
||
in: body
|
||
name: body
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.ProductPayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerProductOneBody'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- AdminToken: []
|
||
summary: 创建商品
|
||
tags:
|
||
- 管理端-商品
|
||
/api/admin/products/{id}:
|
||
delete:
|
||
parameters:
|
||
- description: 商品 ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerBoolOKWrap'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- AdminToken: []
|
||
summary: 删除商品
|
||
tags:
|
||
- 管理端-商品
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: 商品 ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: 商品字段
|
||
in: body
|
||
name: body
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.ProductPayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerProductOneBody'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- AdminToken: []
|
||
summary: 更新商品
|
||
tags:
|
||
- 管理端-商品
|
||
/api/admin/products/{id}/status:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: 商品 ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: '{active}'
|
||
in: body
|
||
name: body
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.TogglePayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerProductOneBody'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- AdminToken: []
|
||
summary: 切换上架状态
|
||
tags:
|
||
- 管理端-商品
|
||
/api/admin/site/maintenance:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: 维护开关与原因
|
||
in: body
|
||
name: body
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.MaintenancePayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerMaintenanceWrap'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- AdminToken: []
|
||
summary: 设置维护模式
|
||
tags:
|
||
- 管理端-站点
|
||
/api/admin/site/smtp:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerSMTPWrap'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- AdminToken: []
|
||
summary: 获取 SMTP 配置
|
||
tags:
|
||
- 管理端-站点
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: SMTP 字段
|
||
in: body
|
||
name: body
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/storage.SMTPConfig'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerStringOKBody'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- AdminToken: []
|
||
summary: 保存 SMTP 配置
|
||
tags:
|
||
- 管理端-站点
|
||
/api/admin/system-status:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- AdminToken: []
|
||
summary: 系统运行状态
|
||
tags:
|
||
- 管理端-系统
|
||
/api/admin/verify:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: '响应为 {"valid": true/false},不泄露真实口令。'
|
||
parameters:
|
||
- description: 待校验 token
|
||
in: body
|
||
name: body
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.AdminVerifyTokenRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerValidBody'
|
||
summary: 校验管理员令牌
|
||
tags:
|
||
- 管理端-认证
|
||
/api/chat/messages:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerMessagesWrap'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 我的聊天消息
|
||
tags:
|
||
- 聊天(用户)
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: 消息正文
|
||
in: body
|
||
name: body
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.ChatMessagePayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerOneChatMsgWrap'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"429":
|
||
description: Too Many Requests
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 发送用户消息
|
||
tags:
|
||
- 聊天(用户)
|
||
/api/checkout:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: Bearer 用户 token(部分商品必填)
|
||
in: header
|
||
name: Authorization
|
||
type: string
|
||
- description: 结账参数
|
||
in: body
|
||
name: body
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.CheckoutPayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerCheckoutWrap'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"409":
|
||
description: 库存锁定冲突或同用户待支付
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
summary: 结账创建订单
|
||
tags:
|
||
- 订单
|
||
/api/health:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: status ok;rabbitmq 为 disabled|ok|error:...
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
summary: 健康检查
|
||
tags:
|
||
- 健康检查
|
||
/api/orders:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerOrdersBody'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 我的订单
|
||
tags:
|
||
- 订单
|
||
/api/orders/{id}/cancel:
|
||
post:
|
||
parameters:
|
||
- description: 订单 ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerCancelWrap'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
summary: 取消订单
|
||
tags:
|
||
- 订单
|
||
/api/orders/{id}/confirm:
|
||
post:
|
||
parameters:
|
||
- description: 订单 ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerConfirmWrap'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"409":
|
||
description: 待支付未到账等
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"410":
|
||
description: 已取消或超时
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
summary: 确认订单
|
||
tags:
|
||
- 订单
|
||
/api/orders/{id}/payment-status:
|
||
get:
|
||
parameters:
|
||
- description: 订单 ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerPaymentStatusWrap'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
summary: 订单支付状态
|
||
tags:
|
||
- 订单
|
||
/api/products:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerProductListBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
summary: 上架商品列表
|
||
tags:
|
||
- 公开
|
||
/api/products/{id}/view:
|
||
post:
|
||
parameters:
|
||
- description: 商品 ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerProductViewWrap'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
summary: 记录商品浏览
|
||
tags:
|
||
- 公开
|
||
/api/site/maintenance:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerMaintenanceWrap'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
summary: 维护模式状态
|
||
tags:
|
||
- 公开
|
||
/api/site/visit:
|
||
post:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerVisitWrap'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
summary: 记录站点访问
|
||
tags:
|
||
- 公开
|
||
/api/stats:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerStatsWrap'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
summary: 站点统计
|
||
tags:
|
||
- 公开
|
||
/api/webhooks/mengya-pay:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: 与 WEBHOOK_MENGYA_SECRET 一致
|
||
in: header
|
||
name: X-Webhook-Secret
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerWebhookMengyaResp'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
summary: 萌芽支付 Webhook
|
||
tags:
|
||
- Webhook
|
||
/api/wishlist:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerWishlistWrap'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 收藏列表
|
||
tags:
|
||
- 收藏
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: 商品 ID
|
||
in: body
|
||
name: body
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.WishlistItemPayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerWishlistWrap'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 添加收藏
|
||
tags:
|
||
- 收藏
|
||
/api/wishlist/{id}:
|
||
delete:
|
||
parameters:
|
||
- description: 商品 ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerWishlistWrap'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/handlers.SwaggerErrorBody'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 移除收藏
|
||
tags:
|
||
- 收藏
|
||
schemes:
|
||
- http
|
||
- https
|
||
securityDefinitions:
|
||
AdminToken:
|
||
description: 管理端令牌(也可使用 Authorization 头或 query token,见各接口说明)
|
||
in: header
|
||
name: X-Admin-Token
|
||
type: apiKey
|
||
BearerAuth:
|
||
description: '用户访问令牌,格式: Bearer 空格 + token'
|
||
in: header
|
||
name: Authorization
|
||
type: apiKey
|
||
WebhookSecret:
|
||
description: 与服务端 WEBHOOK_MENGYA_SECRET 一致时校验萌芽支付 Webhook
|
||
in: header
|
||
name: X-Webhook-Secret
|
||
type: apiKey
|
||
swagger: "2.0"
|