🎨 增加 Go 后端
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
package service
|
||||
|
||||
import "whois-go/pkg/log"
|
||||
|
||||
type Service struct {
|
||||
logger *log.Logger
|
||||
}
|
||||
|
||||
func NewService(logger *log.Logger) *Service {
|
||||
return &Service{
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
v1 "whois-go/api/v1"
|
||||
"whois-go/internal/config"
|
||||
"whois-go/internal/global"
|
||||
"whois-go/internal/utils"
|
||||
"whois-go/pkg/log"
|
||||
)
|
||||
|
||||
type SystemService interface {
|
||||
GetSystemConfig() (config.SiteConfig, error)
|
||||
GetWhoisJson(fileConfig string) ([]v1.WhoisApiInterface, error)
|
||||
WhoisServerIsWhocx(domain string) string
|
||||
WhoisServerIsTianhu(domain string) (v1.TianHuWhoisResponse, error)
|
||||
}
|
||||
|
||||
func NewSystemService(service *Service, logger *log.Logger) SystemService {
|
||||
return &systemService{
|
||||
Service: service,
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
|
||||
type systemService struct {
|
||||
*Service
|
||||
logger *log.Logger
|
||||
}
|
||||
|
||||
// GetSystemConfig 读取配置文件
|
||||
func (s *systemService) GetSystemConfig() (config.SiteConfig, error) {
|
||||
return global.G_CONFIG.SiteConfig, nil
|
||||
}
|
||||
|
||||
func (s *systemService) GetWhoisJson(fileConfig string) ([]v1.WhoisApiInterface, error) {
|
||||
file, err := os.Open(fmt.Sprintf("config/json/%s.json", fileConfig))
|
||||
if err != nil {
|
||||
s.logger.Fatal(fmt.Sprintf("Error opening file: %s", err))
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
// 读取文件内容
|
||||
bytes, err := ioutil.ReadAll(file)
|
||||
|
||||
// 反序列化JSON到结构体切片
|
||||
var apis []v1.WhoisApiInterface
|
||||
if err = json.Unmarshal(bytes, &apis); err != nil {
|
||||
s.logger.Fatal(fmt.Sprintf("Error unmarshalling JSON: %s", err))
|
||||
}
|
||||
|
||||
return apis, err
|
||||
}
|
||||
|
||||
func (s *systemService) WhoisServerIsWhocx(domain string) string {
|
||||
whocxURL := global.G_CONFIG.SiteConfig.WhoisServerApi["whocx"]
|
||||
params := url.Values{}
|
||||
params.Set("domain", domain)
|
||||
params.Set("whois", "Domain Name: ")
|
||||
params.Set("lang", "zh")
|
||||
params.Set("time_zone", "8")
|
||||
request, err := utils.SendPostRequest(whocxURL, params)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return request
|
||||
}
|
||||
|
||||
func (s *systemService) WhoisServerIsTianhu(domain string) (v1.TianHuWhoisResponse, error) {
|
||||
tianhuURL := global.G_CONFIG.SiteConfig.WhoisServerApi["tianhu"]
|
||||
params := url.Values{}
|
||||
//domain=baidu.com&action=searchWhois
|
||||
params.Set("domain", domain)
|
||||
params.Set("action", "searchWhois")
|
||||
var tianhuResp v1.TianHuWhoisResponse
|
||||
// Append query parameters to the URL
|
||||
fullURL := tianhuURL + "?" + params.Encode()
|
||||
// Perform the GET request
|
||||
response, err := http.Get(fullURL)
|
||||
|
||||
defer response.Body.Close()
|
||||
|
||||
// Read the response body
|
||||
body, err := ioutil.ReadAll(response.Body)
|
||||
|
||||
err = json.Unmarshal(body, &tianhuResp)
|
||||
|
||||
return tianhuResp, err
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package service
|
||||
|
||||
type UserService interface {
|
||||
}
|
||||
|
||||
type userService struct {
|
||||
*Service
|
||||
}
|
||||
|
||||
func NewUserService(service *Service) UserService {
|
||||
return &userService{
|
||||
Service: service,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *userService) GetUserById(id int64) {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user