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.
357 lines
14 KiB
357 lines
14 KiB
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
|
|
}
|
|
|