You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

358 lines
14 KiB

2 months ago
package api
import (
"github.com/gin-gonic/gin"
"net/http"
"wss-pool/pkg/processor"
)
// 处理跨域
func Core() gin.HandlerFunc {
return func(c *gin.Context) {
method := c.Request.Method
c.Header("Access-Control-Allow-Origin", "*")
c.Header("Access-Control-Allow-Headers", "Content-Type,AccessToken,X-CSRF-Token,Authorization,Token")
c.Header("Access-Control-Allow-Methods", "POST,GET,OPTIONS")
c.Header("Access-Control-Expose-Headers", "Content-Length,Access-Control-Allow-Origin,Access-Control-Allow-Headers,Content-Type")
c.Header("Access-Control-Allow-Credentials", "True")
// Release Index Options
if method == "OPTIONS" {
c.AbortWithStatus(http.StatusNoContent)
}
// Process Request
c.Next()
}
}
// 数据API服务路由
func RouterApiServer(project string) *gin.Engine {
routers := gin.Default()
routers.Use(Core())
router := routers.Group("/")
// excel 导出
router.GET("/spots/excel", processor.SymbolToExcel)
router.GET("/spots/excel/forex", processor.ExcelToForexCode)
router.GET("/spots/excel/japan", processor.ExcelToSymbolByJapanJson)
router.GET("/spots/excel/japanJson", processor.ExcelToSymbolByJapan)
// 现货数据API服务
router.GET("/main/list", processor.MainSpotList)
router.GET("/main/free-list", processor.MainFreeSpotList)
router.GET("/spots/kline", processor.SpotsKline)
router.GET("/spots/merged", processor.SpotsMerged)
router.GET("/spots/tickers", processor.SpotsTickers)
router.GET("/spots/trade", processor.SpotsTrade)
router.GET("/spots/intro", processor.IntroList)
router.GET("/spots/img/visit", processor.Visit)
router.GET("/spots/detail", processor.SpotsDetail)
router.GET("/spots/history/trade", processor.SpotsHistoryTrade)
router.GET("/spots/depth", processor.SpotsDepth)
router.GET("/spots/merged/list", processor.SpotsMergedList)
router.GET("/spots/index/list", processor.ExchangeSymbolIndexList)
router.GET("/spots/index/info", processor.StockIndexInfo)
router.GET("/spots/index/kline/list", processor.StockIndexKLineList)
// 合约数据API服务
router.GET("/contract/bbo", processor.ContractBbo)
router.GET("/contract/history/kline", processor.ContractHistoryKline)
router.GET("/contract/history/price_kline", processor.ContractHistoryPriceKline)
router.GET("/contract/batch_merged", processor.ContractBatchMerged)
router.GET("/contract/trade", processor.ContractTrade)
router.GET("/contract/swap_his_open_interest", processor.ContractsWapHisOpenInterest)
router.GET("/contract/history/linear_swap_premium_index_kline", processor.ContractHistoryLinearSwapPremiumIndexKline)
router.GET("/contract/history/linear_swap_estimated_rate_kline", processor.ContractHistoryLinearSwapEstimatedRateKline)
router.GET("/contract/history/linear_swap_basis", processor.ContractHistoryLinearSwapBasis)
router.GET("/contract/merged/list", processor.ContractMergedList)
router.GET("/contract/merged", processor.ContractMerged)
router.GET("/contract/depth", processor.ContractDepth)
router.GET("/contract/history/trade", processor.ContractHistoryTrade)
router.POST("/encryption/spots/news/add", processor.StockNewAdd)
// 股票基本信息查询
router.GET("share/fundamentals", processor.Fundamentals)
router.GET("share/fundamentals_new", processor.FundamentalsNew)
router.GET("share/eod", processor.Eod)
router.GET("share/get-list-optional-stock", processor.FindShareBySymbol)
router.GET("share/intradiscal", processor.IntraDisCal)
router.GET("share/exchange-symbol-list", processor.ExchangeSymbolList)
router.GET("share/exchange-free-symbol-list", processor.ExchangeFreeSymbolList)
router.GET("share/intraday", processor.Intraday)
router.GET("/spots/news/list", processor.StockNewsList)
router.GET("/spots/kline/list", processor.StockKLineList)
router.GET("/spots/southAsia/info", processor.StockSouthAsiaInfo)
router.GET("/spots/us/info", processor.StockUsInfo)
router.GET("/spots/kline/us/list", processor.StockKLineUsList)
router.GET("/spots/ticker_to_excel", processor.TickerToExcel)
router.POST("/spots/update/img", processor.UpdateImg)
router.POST("/spots/update/keep", processor.UpdateKeepDecimal)
router.POST("/spots/list/new/add", processor.StockListAddToPHP)
router.POST("/spots/php/update", processor.StockListUpdateToPHP)
router.POST("/spots/index/list/new/add", processor.StockIndexListUpdateToPHP)
// 美股股票静态数据查询
router.GET("/market/grouped", processor.Grouped)
router.GET("/market/trades", processor.Trades)
router.GET("/market/last-trade", processor.LastTrade)
router.GET("/market/quotes", processor.Quotes)
router.GET("/market/last-quote", processor.LastQuote)
router.GET("/market/snapshot-all-tickers", processor.SnapshotAllTickers)
router.GET("/market/snapshot-gainers-losers", processor.SnapshotGainersLosers)
router.GET("/market/snapshot-one-ticker", processor.SnapshotOneTicker)
router.GET("/market/reference-ticker", processor.ReferenceTicker)
router.GET("/market/contract-price-kline", processor.ContractPriceKLineList)
router.GET("/market/history-us", processor.HistoryUsList)
router.GET("/market/inquiry/price", processor.InquiryPrice)
router.GET("/market/spot-kline", processor.SpotKLineList)
router.GET("/market/contract-kline", processor.ContractKLineList)
router.GET("/market/reference-ticker-details", processor.ReferenceTickerDetails)
router.GET("/market/aggregates", processor.Aggregates)
router.GET("/market/open-close", processor.OpenClose)
router.GET("/market/previous-close", processor.PreviousClose)
router.GET("/market/reference-ticker-news", processor.ReferenceTickerNews)
router.POST("/market/msg", processor.MsgSend)
router.POST("/market/mobilelogin", processor.MobileLogin)
router.POST("/market/phonenumberbypassword", processor.PhoneNumberByPassWord)
router.POST("/market/registration", processor.Registration)
router.POST("/market/forgetpasswore", processor.ForgetPassWore)
router.POST("/market/setphonenumber", processor.SetPhoneNumber)
// 期权数据API服务
router.GET("/option/list", processor.ExchangeOptionList)
router.GET("/option/info", processor.OptionInfo)
router.GET("/option/php/list", processor.OptionPHPList)
router.GET("/option/excel", processor.OptionToExcel)
// 外汇数据API服务
router.GET("/forex/kline", processor.ForexAggregates)
router.GET("/forex/tickers/list", processor.ForexAllTickers)
router.GET("/forex/ticker", processor.ForexTicker)
router.GET("/forex/previous_close", processor.ForexPreviousClose)
router.GET("/forex/grouped_daily", processor.ForexGroupedDaily)
router.GET("/forex/ticker_search_list", processor.ForexSymbolList)
router.GET("/forex/ticker_free_list", processor.ForexFreeSymbolList)
router.GET("/forex/quotes_bbo", processor.ForexQuotesBBO)
router.GET("/forex/last_quote_bbo", processor.ForexLastQuote)
router.GET("/forex/real_time_currency", processor.ForexRealTimeCurrency)
// 新版外汇API服务
router.GET("/forex/ticker_new_search_list", processor.ForexSymbolListNew)
router.GET("/forex/ticker_new_free_list", processor.ForexFreeSymbolListNew)
router.GET("/forex/kline_history", processor.ForexAggregatesNewGet)
router.GET("/forex/trade_tick_list", processor.ForexTradeList)
router.POST("/forex/depth_tick", processor.ForexAggregatesDepthTick)
router.POST("/forex/trade_tick", processor.ForexAggregatesTradeTick)
router.POST("/forex/kline_new", processor.ForexAggregatesNewPost)
router.POST("/forex/spots/news/add", processor.StockNewAdd)
return routers
}
// 指数股票API服务
func RouterStockIndexApiServer() *gin.Engine {
router := gin.Default()
router.Use(Core())
group := router.Group("/stockIndex")
{
group.POST("/new/add", processor.StockIndexInfoAdd)
group.POST("/list/add", processor.StockIndexListAdd)
group.POST("/info/add", processor.StockIndexInfoMon)
group.POST("/list/update", processor.StockIndexListUpdate)
group.GET("/list/get", processor.StockIndexListGet)
group.POST("/spots/news/add", processor.StockNewAdd)
}
return router
}
// 印度期权股票API服务
func RouterIndiaOptionApiServer() *gin.Engine {
router := gin.Default()
router.Use(Core())
group := router.Group("/indiaOption")
{
group.POST("/info/add", processor.OptionInfoAdd)
group.POST("/list/add", processor.OptionListAdd)
}
return router
}
// 美股股票API服务
func RouterUSApiServer() *gin.Engine {
router := gin.Default()
router.Use(Core())
group := router.Group("/us")
{
group.POST("/message/add", processor.UsMessage)
}
return router
}
// 印尼股票API服务
func RouterIndonesiaApiServer() *gin.Engine {
router := gin.Default()
router.Use(Core())
group := router.Group("/indonesia")
{
group.POST("/spots/new/add", processor.StockInfoAdd)
group.POST("/spots/list/add", processor.StockListAdd)
group.POST("/spots/info/add", processor.StockInfoMon)
group.POST("/spots/list/update", processor.StockListUpdate)
group.GET("/spots/list/get", processor.StockListGet)
group.POST("/spots/news/add", processor.StockNewAdd)
}
return router
}
// 泰国股票API服务
func RouterThailandApiServer() *gin.Engine {
router := gin.Default()
router.Use(Core())
group := router.Group("/thailand")
{
group.POST("/spots/new/add", processor.StockInfoAdd)
group.POST("/spots/list/add", processor.StockListAdd)
group.POST("/spots/info/add", processor.StockInfoMon)
group.POST("/spots/list/update", processor.StockListUpdate)
group.GET("/spots/list/get", processor.StockListGet)
group.POST("/spots/news/add", processor.StockNewAdd)
}
return router
}
// 印度股票API服务
func RouterIndiaApiServer() *gin.Engine {
router := gin.Default()
router.Use(Core())
group := router.Group("/india")
{
group.POST("/spots/new/add", processor.StockInfoAdd)
group.POST("/spots/list/add", processor.StockListAdd)
group.POST("/spots/info/add", processor.StockInfoMon)
group.POST("/spots/list/update", processor.StockListUpdate)
group.GET("/spots/list/get", processor.StockListGet)
group.POST("/spots/news/add", processor.StockNewAdd)
}
return router
}
// 马来西亚股票API服务
func RouterMalaysiaApiServer() *gin.Engine {
router := gin.Default()
router.Use(Core())
group := router.Group("/malaysia")
{
group.POST("/spots/new/add", processor.StockInfoAdd)
group.POST("/spots/list/add", processor.StockListAdd)
group.POST("/spots/info/add", processor.StockInfoMon)
group.POST("/spots/list/update", processor.StockListUpdate)
group.GET("/spots/list/get", processor.StockListGet)
group.POST("/spots/news/add", processor.StockNewAdd)
}
return router
}
// 新加坡股票API服务
func RouterSingaporeApiServer() *gin.Engine {
router := gin.Default()
router.Use(Core())
group := router.Group("/singapore")
{
group.POST("/spots/new/add", processor.StockInfoAdd)
group.POST("/spots/list/add", processor.StockListAdd)
group.POST("/spots/info/add", processor.StockInfoMon)
group.POST("/spots/list/update", processor.StockListUpdate)
group.GET("/spots/list/get", processor.StockListGet)
group.POST("/spots/news/add", processor.StockNewAdd)
}
return router
}
// 港股股票API服务
func RouterHongKongApiServer() *gin.Engine {
router := gin.Default()
router.Use(Core())
group := router.Group("/hongkong")
{
group.POST("/spots/new/add", processor.StockInfoAdd)
group.POST("/spots/list/add", processor.StockListAdd)
group.POST("/spots/info/add", processor.StockInfoMon)
group.POST("/spots/list/update", processor.StockListUpdate)
group.GET("/spots/list/get", processor.StockListGet)
group.POST("/spots/news/add", processor.StockNewAdd)
}
return router
}
// 英国股票API服务
func RouterUKApiServer() *gin.Engine {
router := gin.Default()
router.Use(Core())
group := router.Group("/uk")
{
group.POST("/spots/new/add", processor.StockInfoAdd)
group.POST("/spots/list/add", processor.StockListAdd)
group.POST("/spots/info/add", processor.StockInfoMon)
group.POST("/spots/list/update", processor.StockListUpdate)
group.GET("/spots/list/get", processor.StockListGet)
group.POST("/spots/news/add", processor.StockNewAdd)
}
return router
}
// 法国股票API服务
func RouterFranceApiServer() *gin.Engine {
router := gin.Default()
router.Use(Core())
group := router.Group("/france")
{
group.POST("/spots/new/add", processor.StockInfoAdd)
group.POST("/spots/list/add", processor.StockListAdd)
group.POST("/spots/info/add", processor.StockInfoMon)
group.POST("/spots/list/update", processor.StockListUpdate)
group.GET("/spots/list/get", processor.StockListGet)
group.POST("/spots/news/add", processor.StockNewAdd)
}
return router
}
// 德国股票API服务
func RouterGermanyApiServer() *gin.Engine {
router := gin.Default()
router.Use(Core())
group := router.Group("/germany")
{
group.POST("/spots/new/add", processor.StockInfoAdd)
group.POST("/spots/list/add", processor.StockListAdd)
group.POST("/spots/info/add", processor.StockInfoMon)
group.POST("/spots/list/update", processor.StockListUpdate)
group.GET("/spots/list/get", processor.StockListGet)
group.POST("/spots/news/add", processor.StockNewAdd)
}
return router
}
// 巴西股票API服务
func RouterBrazilApiServer() *gin.Engine {
router := gin.Default()
router.Use(Core())
group := router.Group("/brazil")
{
group.POST("/spots/new/add", processor.StockInfoAdd)
group.POST("/spots/list/add", processor.StockListAdd)
group.POST("/spots/info/add", processor.StockInfoMon)
group.POST("/spots/list/update", processor.StockListUpdate)
group.GET("/spots/list/get", processor.StockListGet)
group.POST("/spots/news/add", processor.StockNewAdd)
}
return router
}
// 日本股票API服务
func RouterJapanApiServer() *gin.Engine {
router := gin.Default()
router.Use(Core())
group := router.Group("/japan")
{
group.POST("/spots/new/add", processor.StockInfoAdd)
group.POST("/spots/list/add", processor.StockListAdd)
group.POST("/spots/info/add", processor.StockInfoMon)
group.POST("/spots/list/update", processor.StockListUpdate)
group.GET("/spots/list/get", processor.StockListGet)
group.POST("/spots/news/add", processor.StockNewAdd)
}
return router
}