Compare commits

...

2 Commits

Author SHA1 Message Date
longpeng
e1beee6478 用于测试swagger的接口 2025-06-27 12:10:54 +08:00
longpeng
a2bf792823 test 2025-06-27 10:48:59 +08:00
4 changed files with 1124 additions and 0 deletions

View File

@ -280,6 +280,90 @@ const docTemplate = `{
}
}
},
"/test/core-transfer": {
"post": {
"description": "Core transfer endpoint for handling core banking transfer operations",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"test"
],
"summary": "Core transfer endpoint",
"parameters": [
{
"description": "Core transfer request body",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.CoreTransfer"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/test/test-endpoint": {
"post": {
"description": "Test endpoint for API functionality verification",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"test"
],
"summary": "Test endpoint",
"parameters": [
{
"description": "Test request body",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.Endpoint"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/workflows/start": {
"post": {
"description": "Start a new workflow",
@ -401,6 +485,382 @@ const docTemplate = `{
}
},
"definitions": {
"handlers.CoreTransfer": {
"type": "object",
"properties": {
"service": {
"type": "object",
"properties": {
"APP_HEAD": {
"type": "object",
"properties": {
"BranchId": {
"type": "string"
},
"TlrNo": {
"type": "string"
},
"array": {
"type": "object",
"properties": {
"AuthTlrInf": {
"type": "object",
"properties": {
"ApprTellerNo": {
"type": "string"
}
}
}
}
}
}
},
"QryRcrdNo": {
"type": "string"
},
"SYS_HEAD": {
"type": "object",
"properties": {
"PrvdSysSeqNo": {
"type": "string"
},
"SvcCd": {
"type": "string"
},
"SvcScn": {
"type": "string"
},
"TranDt": {
"type": "string"
},
"TranRetSt": {
"type": "string"
},
"array": {
"type": "object",
"properties": {
"RetInf": {
"type": "object",
"properties": {
"RetCd": {
"type": "string"
},
"RetMsg": {
"type": "string"
}
}
}
}
}
}
},
"TxnStrtNo": {
"type": "string"
},
"array": {
"type": "array",
"items": {
"type": "object",
"properties": {
"TxnInfArray": {
"type": "object",
"properties": {
"AcctNm": {
"type": "string"
},
"CnclRvrsFlg": {
"type": "string"
},
"CnlNo": {
"type": "string"
},
"CntprAcctNoOrCardNo": {
"type": "string"
},
"ImprtBlkVchrNo": {
"type": "string"
},
"ImprtBlkVchrTp": {
"type": "string"
},
"OrigTxnSeqNo": {
"type": "string"
},
"OthrBnkBnkNo": {
"type": "string"
},
"RmkInf": {
"type": "string"
},
"SubBrId": {
"type": "string"
},
"TxnAfBal": {
"type": "string"
},
"TxnAmt": {
"type": "string"
},
"TxnCcy": {
"type": "string"
},
"TxnCd": {
"type": "string"
},
"TxnSmyDsc": {
"type": "string"
},
"TxnSysDt": {
"type": "string"
},
"TxnSysTm": {
"type": "string"
},
"TxnTlrNo": {
"type": "string"
}
}
}
}
}
}
}
}
}
},
"handlers.Endpoint": {
"type": "object",
"properties": {
"BODY": {
"type": "object",
"properties": {
"BASE_ACCT_NO": {
"type": "string"
},
"CARD_NO": {
"type": "array",
"items": {
"type": "object",
"properties": {
"DOCUMENT_ID": {
"type": "string"
},
"DOCUMENT_TYPE": {
"type": "string"
},
"LINKMAN_NAME": {
"type": "string"
},
"LINKMAN_TYPE": {
"type": "string"
},
"PHONE_NO1": {
"type": "string"
},
"PHONE_NO2": {
"type": "string"
}
}
}
},
"HANG_SEQ_NO": {
"type": "array",
"items": {
"type": "string"
}
},
"SERV_DETAIL": {
"type": "object",
"properties": {
"CHARGE_MODE": {
"type": "string"
},
"DISC_FEE_AMT": {
"type": "string"
},
"DISC_RATE": {
"type": "object",
"properties": {
"CHARGE_MODE": {
"type": "string"
},
"PHONE_NO2": {
"type": "object",
"properties": {
"DOCUMENT_TYPE": {
"type": "array",
"items": {
"type": "object",
"properties": {
"DOCUMENT_ID": {
"type": "object",
"properties": {
"LINKMAN_TYPE": {
"type": "string"
},
"PHONE_NO2": {
"type": "string"
}
}
},
"DOCUMENT_TYPE": {
"type": "string"
},
"LINKMAN_NAME": {
"type": "string"
},
"LINKMAN_TYPE": {
"type": "string"
}
}
}
},
"LINKMAN_NAME": {
"type": "string"
},
"LINKMAN_TYPE": {
"type": "string"
}
}
}
}
},
"DISC_TYPE": {
"type": "string"
},
"FEE_AMT": {
"type": "string"
},
"FEE_TYPE": {
"type": "string"
},
"ORIG_FEE_AMT": {
"type": "string"
}
}
},
"SETTLEMENT_DATE": {
"type": "string"
},
"TRAN_AMT": {
"type": "string"
},
"TRAN_CCY": {
"type": "string"
},
"TRAN_TYPE": {
"type": "string"
}
}
},
"PUB_DOMAIN": {
"type": "object",
"properties": {
"AUTH_FLAG": {
"type": "string"
},
"AUTH_INFO_NUM": {
"type": "string"
},
"AUTH_STATUS": {
"type": "string"
},
"AUTH_TELLER": {
"type": "string"
},
"BRANCH_ID": {
"type": "string"
},
"CHANNEL_CODE": {
"type": "string"
},
"CONFIRM_FLAG": {
"type": "string"
},
"CONFIRM_STATUS": {
"type": "string"
},
"CONSUM_TRAN_DATE": {
"type": "string"
},
"CONSUM_TRAN_TIME": {
"type": "string"
},
"CURR_PAGE_NUM": {
"type": "string"
},
"LEGAL_CODE": {
"type": "string"
},
"PAGE_UP_DOWN": {
"type": "string"
},
"PER_PAGE_NUM": {
"type": "string"
},
"PROVID_TRAN_DATE": {
"type": "string"
},
"PUB_EXTEND": {
"type": "string"
},
"TRAN_TELLER": {
"type": "string"
}
}
},
"SYS_HEAD": {
"type": "object",
"properties": {
"CHARACTER_SET": {
"type": "string"
},
"COMM_TYPE": {
"type": "string"
},
"CONSUM_REQ_DATE": {
"type": "string"
},
"CONSUM_REQ_TIME": {
"type": "string"
},
"CONSUM_SYS_CODE": {
"type": "string"
},
"FILE_FLAG": {
"type": "string"
},
"GLOBAL_SEQ": {
"type": "string"
},
"LOCAL_LANG": {
"type": "string"
},
"PROVID_SYS_CODE": {
"type": "string"
},
"SCENES_CODE": {
"type": "string"
},
"SCENES_VERSION": {
"type": "string"
},
"SERVICE_NAME": {
"type": "string"
},
"SERVICE_REQ_SEQ": {
"type": "string"
},
"SERVICE_VERSION": {
"type": "string"
},
"SRC_ENC_NODE": {
"type": "string"
}
}
}
}
},
"models.CreateCompositeCaseRequest": {
"type": "object",
"required": [

View File

@ -274,6 +274,90 @@
}
}
},
"/test/core-transfer": {
"post": {
"description": "Core transfer endpoint for handling core banking transfer operations",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"test"
],
"summary": "Core transfer endpoint",
"parameters": [
{
"description": "Core transfer request body",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.CoreTransfer"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/test/test-endpoint": {
"post": {
"description": "Test endpoint for API functionality verification",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"test"
],
"summary": "Test endpoint",
"parameters": [
{
"description": "Test request body",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.Endpoint"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/workflows/start": {
"post": {
"description": "Start a new workflow",
@ -395,6 +479,382 @@
}
},
"definitions": {
"handlers.CoreTransfer": {
"type": "object",
"properties": {
"service": {
"type": "object",
"properties": {
"APP_HEAD": {
"type": "object",
"properties": {
"BranchId": {
"type": "string"
},
"TlrNo": {
"type": "string"
},
"array": {
"type": "object",
"properties": {
"AuthTlrInf": {
"type": "object",
"properties": {
"ApprTellerNo": {
"type": "string"
}
}
}
}
}
}
},
"QryRcrdNo": {
"type": "string"
},
"SYS_HEAD": {
"type": "object",
"properties": {
"PrvdSysSeqNo": {
"type": "string"
},
"SvcCd": {
"type": "string"
},
"SvcScn": {
"type": "string"
},
"TranDt": {
"type": "string"
},
"TranRetSt": {
"type": "string"
},
"array": {
"type": "object",
"properties": {
"RetInf": {
"type": "object",
"properties": {
"RetCd": {
"type": "string"
},
"RetMsg": {
"type": "string"
}
}
}
}
}
}
},
"TxnStrtNo": {
"type": "string"
},
"array": {
"type": "array",
"items": {
"type": "object",
"properties": {
"TxnInfArray": {
"type": "object",
"properties": {
"AcctNm": {
"type": "string"
},
"CnclRvrsFlg": {
"type": "string"
},
"CnlNo": {
"type": "string"
},
"CntprAcctNoOrCardNo": {
"type": "string"
},
"ImprtBlkVchrNo": {
"type": "string"
},
"ImprtBlkVchrTp": {
"type": "string"
},
"OrigTxnSeqNo": {
"type": "string"
},
"OthrBnkBnkNo": {
"type": "string"
},
"RmkInf": {
"type": "string"
},
"SubBrId": {
"type": "string"
},
"TxnAfBal": {
"type": "string"
},
"TxnAmt": {
"type": "string"
},
"TxnCcy": {
"type": "string"
},
"TxnCd": {
"type": "string"
},
"TxnSmyDsc": {
"type": "string"
},
"TxnSysDt": {
"type": "string"
},
"TxnSysTm": {
"type": "string"
},
"TxnTlrNo": {
"type": "string"
}
}
}
}
}
}
}
}
}
},
"handlers.Endpoint": {
"type": "object",
"properties": {
"BODY": {
"type": "object",
"properties": {
"BASE_ACCT_NO": {
"type": "string"
},
"CARD_NO": {
"type": "array",
"items": {
"type": "object",
"properties": {
"DOCUMENT_ID": {
"type": "string"
},
"DOCUMENT_TYPE": {
"type": "string"
},
"LINKMAN_NAME": {
"type": "string"
},
"LINKMAN_TYPE": {
"type": "string"
},
"PHONE_NO1": {
"type": "string"
},
"PHONE_NO2": {
"type": "string"
}
}
}
},
"HANG_SEQ_NO": {
"type": "array",
"items": {
"type": "string"
}
},
"SERV_DETAIL": {
"type": "object",
"properties": {
"CHARGE_MODE": {
"type": "string"
},
"DISC_FEE_AMT": {
"type": "string"
},
"DISC_RATE": {
"type": "object",
"properties": {
"CHARGE_MODE": {
"type": "string"
},
"PHONE_NO2": {
"type": "object",
"properties": {
"DOCUMENT_TYPE": {
"type": "array",
"items": {
"type": "object",
"properties": {
"DOCUMENT_ID": {
"type": "object",
"properties": {
"LINKMAN_TYPE": {
"type": "string"
},
"PHONE_NO2": {
"type": "string"
}
}
},
"DOCUMENT_TYPE": {
"type": "string"
},
"LINKMAN_NAME": {
"type": "string"
},
"LINKMAN_TYPE": {
"type": "string"
}
}
}
},
"LINKMAN_NAME": {
"type": "string"
},
"LINKMAN_TYPE": {
"type": "string"
}
}
}
}
},
"DISC_TYPE": {
"type": "string"
},
"FEE_AMT": {
"type": "string"
},
"FEE_TYPE": {
"type": "string"
},
"ORIG_FEE_AMT": {
"type": "string"
}
}
},
"SETTLEMENT_DATE": {
"type": "string"
},
"TRAN_AMT": {
"type": "string"
},
"TRAN_CCY": {
"type": "string"
},
"TRAN_TYPE": {
"type": "string"
}
}
},
"PUB_DOMAIN": {
"type": "object",
"properties": {
"AUTH_FLAG": {
"type": "string"
},
"AUTH_INFO_NUM": {
"type": "string"
},
"AUTH_STATUS": {
"type": "string"
},
"AUTH_TELLER": {
"type": "string"
},
"BRANCH_ID": {
"type": "string"
},
"CHANNEL_CODE": {
"type": "string"
},
"CONFIRM_FLAG": {
"type": "string"
},
"CONFIRM_STATUS": {
"type": "string"
},
"CONSUM_TRAN_DATE": {
"type": "string"
},
"CONSUM_TRAN_TIME": {
"type": "string"
},
"CURR_PAGE_NUM": {
"type": "string"
},
"LEGAL_CODE": {
"type": "string"
},
"PAGE_UP_DOWN": {
"type": "string"
},
"PER_PAGE_NUM": {
"type": "string"
},
"PROVID_TRAN_DATE": {
"type": "string"
},
"PUB_EXTEND": {
"type": "string"
},
"TRAN_TELLER": {
"type": "string"
}
}
},
"SYS_HEAD": {
"type": "object",
"properties": {
"CHARACTER_SET": {
"type": "string"
},
"COMM_TYPE": {
"type": "string"
},
"CONSUM_REQ_DATE": {
"type": "string"
},
"CONSUM_REQ_TIME": {
"type": "string"
},
"CONSUM_SYS_CODE": {
"type": "string"
},
"FILE_FLAG": {
"type": "string"
},
"GLOBAL_SEQ": {
"type": "string"
},
"LOCAL_LANG": {
"type": "string"
},
"PROVID_SYS_CODE": {
"type": "string"
},
"SCENES_CODE": {
"type": "string"
},
"SCENES_VERSION": {
"type": "string"
},
"SERVICE_NAME": {
"type": "string"
},
"SERVICE_REQ_SEQ": {
"type": "string"
},
"SERVICE_VERSION": {
"type": "string"
},
"SRC_ENC_NODE": {
"type": "string"
}
}
}
}
},
"models.CreateCompositeCaseRequest": {
"type": "object",
"required": [

193
routers/handlers/test.go Normal file
View File

@ -0,0 +1,193 @@
package handlers
import (
"github.com/gin-gonic/gin"
"net/http"
)
type TestHandler struct {
}
func NewTestHandler() *TestHandler {
return &TestHandler{}
}
// TestEndpoint godoc
// @Summary Test endpoint
// @Description Test endpoint for API functionality verification
// @Tags test
// @Accept json
// @Produce json
// @Param body body Endpoint true "Test request body"
// @Success 200 {object} map[string]interface{}
// @Failure 400 {object} map[string]interface{}
// @Router /test/test-endpoint [post]
func (h *TestHandler) TestEndpoint(c *gin.Context) {
var req Endpoint
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{
"error": "请求参数错误",
"details": err.Error(),
})
return
}
c.JSON(200, gin.H{
"message": "Test endpoint is working",
})
}
// CoreTransferEndpoint godoc
// @Summary Core transfer endpoint
// @Description Core transfer endpoint for handling core banking transfer operations
// @Tags test
// @Accept json
// @Produce json
// @Param body body CoreTransfer true "Core transfer request body"
// @Success 200 {object} map[string]interface{}
// @Failure 400 {object} map[string]interface{}
// @Router /test/core-transfer [post]
func (h *TestHandler) CoreTransferEndpoint(c *gin.Context) {
var req CoreTransfer
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{
"error": "请求参数错误",
"details": err.Error(),
})
return
}
c.JSON(200, gin.H{
"message": "Test endpoint is working",
})
}
type Endpoint struct {
BODY struct {
BASEACCTNO string `json:"BASE_ACCT_NO"`
TRANTYPE string `json:"TRAN_TYPE"`
TRANCCY string `json:"TRAN_CCY"`
TRANAMT string `json:"TRAN_AMT"`
SETTLEMENTDATE string `json:"SETTLEMENT_DATE"`
SERVDETAIL struct {
FEETYPE string `json:"FEE_TYPE"`
FEEAMT string `json:"FEE_AMT"`
ORIGFEEAMT string `json:"ORIG_FEE_AMT"`
DISCFEEAMT string `json:"DISC_FEE_AMT"`
DISCTYPE string `json:"DISC_TYPE"`
DISCRATE struct {
PHONENO2 struct {
LINKMANTYPE string `json:"LINKMAN_TYPE"`
LINKMANNAME string `json:"LINKMAN_NAME"`
DOCUMENTTYPE []struct {
LINKMANTYPE string `json:"LINKMAN_TYPE"`
LINKMANNAME string `json:"LINKMAN_NAME"`
DOCUMENTTYPE string `json:"DOCUMENT_TYPE"`
DOCUMENTID struct {
LINKMANTYPE string `json:"LINKMAN_TYPE"`
PHONENO2 string `json:"PHONE_NO2"`
} `json:"DOCUMENT_ID"`
} `json:"DOCUMENT_TYPE"`
} `json:"PHONE_NO2"`
CHARGEMODE string `json:"CHARGE_MODE"`
} `json:"DISC_RATE"`
CHARGEMODE string `json:"CHARGE_MODE"`
} `json:"SERV_DETAIL"`
HANGSEQNO []string `json:"HANG_SEQ_NO"`
CARDNO []struct {
LINKMANTYPE string `json:"LINKMAN_TYPE"`
LINKMANNAME string `json:"LINKMAN_NAME"`
DOCUMENTTYPE string `json:"DOCUMENT_TYPE"`
DOCUMENTID string `json:"DOCUMENT_ID"`
PHONENO1 string `json:"PHONE_NO1"`
PHONENO2 string `json:"PHONE_NO2"`
} `json:"CARD_NO"`
} `json:"BODY"`
PUBDOMAIN struct {
AUTHFLAG string `json:"AUTH_FLAG"`
AUTHINFONUM string `json:"AUTH_INFO_NUM"`
AUTHSTATUS string `json:"AUTH_STATUS"`
AUTHTELLER string `json:"AUTH_TELLER"`
BRANCHID string `json:"BRANCH_ID"`
CHANNELCODE string `json:"CHANNEL_CODE"`
CONFIRMFLAG string `json:"CONFIRM_FLAG"`
CONFIRMSTATUS string `json:"CONFIRM_STATUS"`
CONSUMTRANDATE string `json:"CONSUM_TRAN_DATE"`
CONSUMTRANTIME string `json:"CONSUM_TRAN_TIME"`
CURRPAGENUM string `json:"CURR_PAGE_NUM"`
LEGALCODE string `json:"LEGAL_CODE"`
PAGEUPDOWN string `json:"PAGE_UP_DOWN"`
PERPAGENUM string `json:"PER_PAGE_NUM"`
PROVIDTRANDATE string `json:"PROVID_TRAN_DATE"`
PUBEXTEND string `json:"PUB_EXTEND"`
TRANTELLER string `json:"TRAN_TELLER"`
} `json:"PUB_DOMAIN"`
SYSHEAD struct {
CHARACTERSET string `json:"CHARACTER_SET"`
COMMTYPE string `json:"COMM_TYPE"`
CONSUMREQDATE string `json:"CONSUM_REQ_DATE"`
CONSUMREQTIME string `json:"CONSUM_REQ_TIME"`
CONSUMSYSCODE string `json:"CONSUM_SYS_CODE"`
FILEFLAG string `json:"FILE_FLAG"`
GLOBALSEQ string `json:"GLOBAL_SEQ"`
LOCALLANG string `json:"LOCAL_LANG"`
PROVIDSYSCODE string `json:"PROVID_SYS_CODE"`
SCENESCODE string `json:"SCENES_CODE"`
SCENESVERSION string `json:"SCENES_VERSION"`
SERVICENAME string `json:"SERVICE_NAME"`
SERVICEREQSEQ string `json:"SERVICE_REQ_SEQ"`
SERVICEVERSION string `json:"SERVICE_VERSION"`
SRCENCNODE string `json:"SRC_ENC_NODE"`
} `json:"SYS_HEAD"`
}
type CoreTransfer struct {
Service struct {
SYSHEAD struct {
SvcCd string `json:"SvcCd"`
SvcScn string `json:"SvcScn"`
PrvdSysSeqNo string `json:"PrvdSysSeqNo"`
TranDt string `json:"TranDt"`
TranRetSt string `json:"TranRetSt"`
Array struct {
RetInf struct {
RetCd string `json:"RetCd"`
RetMsg string `json:"RetMsg"`
} `json:"RetInf"`
} `json:"array"`
} `json:"SYS_HEAD"`
APPHEAD struct {
BranchId string `json:"BranchId"`
TlrNo string `json:"TlrNo"`
Array struct {
AuthTlrInf struct {
ApprTellerNo string `json:"ApprTellerNo"`
} `json:"AuthTlrInf"`
} `json:"array"`
} `json:"APP_HEAD"`
TxnStrtNo string `json:"TxnStrtNo"`
QryRcrdNo string `json:"QryRcrdNo"`
Array []struct {
TxnInfArray struct {
TxnSysDt string `json:"TxnSysDt,omitempty"`
TxnSysTm string `json:"TxnSysTm,omitempty"`
OrigTxnSeqNo string `json:"OrigTxnSeqNo,omitempty"`
CnlNo string `json:"CnlNo,omitempty"`
SubBrId string `json:"SubBrId,omitempty"`
TxnTlrNo string `json:"TxnTlrNo,omitempty"`
TxnCd string `json:"TxnCd"`
TxnSmyDsc string `json:"TxnSmyDsc"`
TxnAmt string `json:"TxnAmt"`
TxnAfBal string `json:"TxnAfBal"`
TxnCcy string `json:"TxnCcy"`
CntprAcctNoOrCardNo string `json:"CntprAcctNoOrCardNo"`
AcctNm string `json:"AcctNm"`
OthrBnkBnkNo string `json:"OthrBnkBnkNo"`
ImprtBlkVchrTp string `json:"ImprtBlkVchrTp"`
ImprtBlkVchrNo string `json:"ImprtBlkVchrNo"`
RmkInf string `json:"RmkInf,omitempty"`
CnclRvrsFlg string `json:"CnclRvrsFlg,omitempty"`
} `json:"TxnInfArray"`
} `json:"array"`
} `json:"service"`
}

View File

@ -90,6 +90,7 @@ func Init() *gin.Engine {
v1 := r.Group(config.Conf.Version)
SetupCompositeCaseRoutes(v1)
SetupWorkflowRoutes(v1)
SetupTestRoutes(v1)
// 添加 Swagger 中间件
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
@ -125,3 +126,13 @@ func SetupWorkflowRoutes(group *gin.RouterGroup) {
api.GET("/workflows/:id/results", handler.GetWorkflowResults)
}
}
func SetupTestRoutes(group *gin.RouterGroup) {
// 测试相关路由
testHandler := handlers.NewTestHandler()
api := group.Group("/api")
{
api.POST("/test/test-endpoint", testHandler.TestEndpoint)
api.POST("/test/core-transfer", testHandler.CoreTransferEndpoint)
}
}