190 lines
5.5 KiB
YAML
190 lines
5.5 KiB
YAML
swagger: "2.0"
|
||
info:
|
||
title: HY Wallet Service API
|
||
version: "1.0.0"
|
||
description: |
|
||
wallet-service 当前只暴露内部 gRPC + protobuf 接口,没有 HTTP JSON router。
|
||
本文件用 OpenAPI 2.0 记录 gRPC 合约,`paths` 使用 gRPC full method 作为文档路径,不代表真实 HTTP endpoint。
|
||
host: localhost:13004
|
||
basePath: /
|
||
schemes:
|
||
- http
|
||
consumes:
|
||
- application/grpc+proto
|
||
produces:
|
||
- application/grpc+proto
|
||
tags:
|
||
- name: wallet
|
||
description: WalletService,账务扣费接口;当前房间送礼由 room-service 同步调用。
|
||
- name: health
|
||
description: 标准 grpc.health.v1.Health。
|
||
responses:
|
||
GRPCError:
|
||
description: gRPC status error;稳定业务原因放在 google.rpc.ErrorInfo.reason。
|
||
schema:
|
||
$ref: "#/definitions/GRPCError"
|
||
paths:
|
||
/hyapp.wallet.v1.WalletService/DebitGift:
|
||
post:
|
||
tags:
|
||
- wallet
|
||
summary: 送礼扣费
|
||
operationId: walletDebitGift
|
||
x-grpc-full-method: /hyapp.wallet.v1.WalletService/DebitGift
|
||
parameters:
|
||
- name: body
|
||
in: body
|
||
required: true
|
||
schema:
|
||
$ref: "#/definitions/DebitGiftRequest"
|
||
responses:
|
||
"200":
|
||
description: 扣费成功;重复 `command_id` 命中幂等时返回原始扣费回执。
|
||
schema:
|
||
$ref: "#/definitions/DebitGiftResponse"
|
||
default:
|
||
$ref: "#/responses/GRPCError"
|
||
/grpc.health.v1.Health/Check:
|
||
post:
|
||
tags:
|
||
- health
|
||
summary: 标准 gRPC health check
|
||
operationId: walletHealthCheck
|
||
x-grpc-full-method: /grpc.health.v1.Health/Check
|
||
parameters:
|
||
- name: body
|
||
in: body
|
||
required: true
|
||
schema:
|
||
$ref: "#/definitions/HealthCheckRequest"
|
||
responses:
|
||
"200":
|
||
description: 标准 health check 响应。
|
||
schema:
|
||
$ref: "#/definitions/HealthCheckResponse"
|
||
default:
|
||
$ref: "#/responses/GRPCError"
|
||
/grpc.health.v1.Health/Watch:
|
||
post:
|
||
tags:
|
||
- health
|
||
summary: 标准 gRPC health watch
|
||
operationId: walletHealthWatch
|
||
x-grpc-full-method: /grpc.health.v1.Health/Watch
|
||
parameters:
|
||
- name: body
|
||
in: body
|
||
required: true
|
||
schema:
|
||
$ref: "#/definitions/HealthCheckRequest"
|
||
responses:
|
||
"200":
|
||
description: 标准 health watch 流式响应;OpenAPI 只记录单条消息结构。
|
||
schema:
|
||
$ref: "#/definitions/HealthCheckResponse"
|
||
default:
|
||
$ref: "#/responses/GRPCError"
|
||
definitions:
|
||
DebitGiftRequest:
|
||
type: object
|
||
required:
|
||
- command_id
|
||
- room_id
|
||
- sender_user_id
|
||
- target_user_id
|
||
- gift_id
|
||
- gift_count
|
||
properties:
|
||
command_id:
|
||
type: string
|
||
description: 账务幂等键;room-service 传入房间命令 `command_id`。
|
||
room_id:
|
||
type: string
|
||
description: 礼物发生的房间 ID。
|
||
sender_user_id:
|
||
type: integer
|
||
format: int64
|
||
description: 扣费用户。
|
||
target_user_id:
|
||
type: integer
|
||
format: int64
|
||
description: 礼物接收用户。
|
||
gift_id:
|
||
type: string
|
||
gift_count:
|
||
type: integer
|
||
format: int32
|
||
minimum: 1
|
||
price_version:
|
||
type: string
|
||
description: 指定礼物价格版本;为空时使用当前生效价格。
|
||
region_id:
|
||
type: integer
|
||
format: int64
|
||
description: 房间 visible_region_id,用于校验礼物区域可用性。
|
||
DebitGiftResponse:
|
||
type: object
|
||
properties:
|
||
billing_receipt_id:
|
||
type: string
|
||
description: 扣费回执 ID,room-service 会写入房间礼物事件。
|
||
transaction_id:
|
||
type: string
|
||
description: 钱包交易 ID。
|
||
coin_spent:
|
||
type: integer
|
||
format: int64
|
||
description: 兼容旧调用方的扣费数量;新调用方应优先读取 charge_asset_type 和 charge_amount。
|
||
charge_asset_type:
|
||
type: string
|
||
enum:
|
||
- COIN
|
||
- DIAMOND
|
||
description: 本次实际扣减的资产类型。
|
||
charge_amount:
|
||
type: integer
|
||
format: int64
|
||
description: 本次实际扣减的资产数量。
|
||
gift_point_added:
|
||
type: integer
|
||
format: int64
|
||
description: 本次实际增加的 GIFT_POINT 数量。
|
||
heat_value:
|
||
type: integer
|
||
format: int64
|
||
description: room-service 用于房间热度和榜单的结算值。
|
||
price_version:
|
||
type: string
|
||
description: 本次命中的服务端价格版本。
|
||
balance_after:
|
||
type: integer
|
||
format: int64
|
||
description: 扣费后的发送方被扣费资产余额。
|
||
HealthCheckRequest:
|
||
type: object
|
||
properties:
|
||
service:
|
||
type: string
|
||
description: gRPC health service name;wallet-service 使用 `wallet-service`。
|
||
HealthCheckResponse:
|
||
type: object
|
||
properties:
|
||
status:
|
||
type: string
|
||
enum:
|
||
- UNKNOWN
|
||
- SERVING
|
||
- NOT_SERVING
|
||
- SERVICE_UNKNOWN
|
||
GRPCError:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
description: gRPC status code,例如 INVALID_ARGUMENT、FAILED_PRECONDITION、UNAVAILABLE。
|
||
message:
|
||
type: string
|
||
error_info_reason:
|
||
type: string
|
||
description: google.rpc.ErrorInfo.reason;账务常见值包括 INSUFFICIENT_BALANCE、DUPLICATE_BILLING_COMMAND、LEDGER_CONFLICT。
|