Beerus — это веб-фреймворк, полностью разработанный на языке Go.
Он основан на net/http и расширяет возможности управления маршрутами, добавляет перехватчики, управление сессиями, получение параметров с помощью struct, проверку параметров и т. д. Также он предоставляет поддержку WebSocket для обновления протокола http до WebSocket и реализации коммуникации.
go get github.com/Beerus-go/Beerus@v1.1.9
Создайте функцию для управления конфигурацией маршрутизации:
func CreateRoute() {
// Любой метод запроса может использовать параметры функции маршрутизации для получения параметров запроса.
// Функции маршрутизации должны иметь возвращаемое значение, поддерживаемые типы: struct, map, array
route.POST("/example/post", func (param DemoParam, req commons.BeeRequest, res commons.BeeResponse) (map[string]string, error) {
if xxx {
return nil, errors.New("The error message you want to return to the front-end")
}
msg := make(map[string]string)
msg["msg"] = "success"
return param, nil
})
}
Если у вас есть подобная структура и вы хотите поместить все параметры из запроса в эту структуру:
type DemoParam struct {
TestStringReception string `notnull:"true" msg:"TestStringReception Cannot be empty" routes:"/example/put"`
TestIntReception int `max:"123" min:"32" msg:"TestIntReception The value range must be between 32 - 123" routes:"/example/post"`
TestUintReception uint `max:"123" min:"32" msg:"TestUintReception The value range must be between 32 - 123"`
TestFloatReception float32 `max:"123" min:"32" msg:"TestFloatReception The value range must be between 32 - 123"`
TestBoolReception bool
TestStringRegReception string `reg:"^[a-z]+$" msg:"TestStringRegReception Does not meet the regular"`
TestBeeFileReception commons.BeeFile
TestJsonReception []string
}
Запустите сервис:
func main() {
routes.CreateRoute()
beerus.ListenHTTP(8080)
}
func CreateRoute() {
route.JsonMode = false
route.POST("/example/post", func (param DemoParam, req commons.BeeRequest, res commons.BeeResponse) {
var result = params.Validation(req, ¶m, param)
if result != params.SUCCESS {
res.SendErrorMsg(1128, result)
return
}
res.SendJson(`{"msg":"SUCCESS"}`)
})
}
``` ### Пример WebSocket
Создание маршрутов WebSocket.
```go
func CreateWebSocketRoute() {
wroute.AddWebSocketRoute("/ws/test", onConnection, onMessage, onClose)
wroute.AddWebSocketRoute("/ws/test2", onConnection, onMessage, onClose)
}
// Чтобы сэкономить время, ниже используются только три функции. На практике вы можете настроить набор функций для каждого wroute
func onConnection(session *wparams.WebSocketSession, msg string) {
session.SendString("connection success")
}
func onMessage(session *wparams.WebSocketSession, msg string) {
session.SendString("I got the message.")
}
func onClose(session *wparams.WebSocketSession, msg string) {
println(msg + "-------------------------------")
}
Запуск сервиса.
func main() {
// Перехватчики, маршруты и т. д. Загрузка данных требует собственных вызовов
routes.CreateRoute()
routes.CreateWebSocketRoute()
// Слушаем сервис и слушаем порт 8080
beerus.ListenHTTP(8080)
}
Beerus лицензирован по MIT.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )