From 10f4c3451a7ff0c1c9ac9301636527a8924c9309 Mon Sep 17 00:00:00 2001 From: Bowens Date: Sat, 26 Mar 2022 11:18:33 +0800 Subject: [PATCH] 1. Add facades.Grpc; 2. Add facades.Response; --- .env.example | 2 ++ .gitignore | 1 - app/grpc/controllers/.gitignore | 0 app/http/controllers/user_controller.go | 7 ++++--- app/http/middleware/cors.go | 24 ++++++++++++------------ app/providers/grpc_service_provider.go | 12 ++++++++++++ config/app.go | 5 +++++ go.mod | 5 ++++- routes/web.go | 4 ++-- storage/logs/.gitignore | 2 ++ storage/temp/.gitignore | 2 ++ 11 files changed, 45 insertions(+), 19 deletions(-) create mode 100644 app/grpc/controllers/.gitignore create mode 100644 app/providers/grpc_service_provider.go create mode 100644 storage/temp/.gitignore diff --git a/.env.example b/.env.example index 009921f..428e860 100644 --- a/.env.example +++ b/.env.example @@ -5,6 +5,8 @@ APP_DEBUG=true APP_URL=http://localhost APP_HOST=127.0.0.1:3000 +GRPC_HOST= + LOG_CHANNEL=stack DB_CONNECTION=mysql diff --git a/.gitignore b/.gitignore index 3e71662..0872255 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ .idea .env -/storage go.sum \ No newline at end of file diff --git a/app/grpc/controllers/.gitignore b/app/grpc/controllers/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/app/http/controllers/user_controller.go b/app/http/controllers/user_controller.go index 5cecd6f..74b9a83 100644 --- a/app/http/controllers/user_controller.go +++ b/app/http/controllers/user_controller.go @@ -2,13 +2,14 @@ package controllers import ( "github.com/gin-gonic/gin" + "github.com/goravel/framework/support/facades" ) type UserController struct { } -func (user UserController) Show(c *gin.Context) { - c.JSON(200, gin.H{ - "message": "show", +func (r UserController) Show(ctx *gin.Context) { + facades.Response.Success(ctx, gin.H{ + "Hello": "Goravel", }) } diff --git a/app/http/middleware/cors.go b/app/http/middleware/cors.go index 1faffc2..0496329 100644 --- a/app/http/middleware/cors.go +++ b/app/http/middleware/cors.go @@ -2,26 +2,26 @@ package middleware import ( "github.com/gin-gonic/gin" - "net/http" ) func Cors() gin.HandlerFunc { - return func(c *gin.Context) { - method := c.Request.Method - origin := c.Request.Header.Get("Origin") + return func(ctx *gin.Context) { + method := ctx.Request.Method + origin := ctx.Request.Header.Get("Origin") if origin != "" { - c.Writer.Header().Set("Access-Control-Allow-Origin", "*") - c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE,UPDATE") - c.Header("Access-Control-Allow-Headers", "Authorization, Content-Length, X-CSRF-Token, Token,session") - c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers") - c.Header("Access-Control-Max-Age", "172800") - c.Header("Access-Control-Allow-Credentials", "true") + ctx.Writer.Header().Set("Access-Control-Allow-Origin", "*") + ctx.Writer.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE") + ctx.Writer.Header().Set("Access-Control-Allow-Headers", "*") + ctx.Writer.Header().Set("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Authorization") + ctx.Writer.Header().Set("Access-Control-Max-Age", "172800") + ctx.Writer.Header().Set("Access-Control-Allow-Credentials", "true") } if method == "OPTIONS" { - c.JSON(http.StatusOK, "ok!") + ctx.AbortWithStatus(204) + return } - c.Next() + ctx.Next() } } diff --git a/app/providers/grpc_service_provider.go b/app/providers/grpc_service_provider.go new file mode 100644 index 0000000..32b06e9 --- /dev/null +++ b/app/providers/grpc_service_provider.go @@ -0,0 +1,12 @@ +package providers + +type GrpcServiceProvider struct { +} + +func (router *GrpcServiceProvider) Boot() { + +} + +func (router *GrpcServiceProvider) Register() { + +} diff --git a/config/app.go b/config/app.go index d3401ba..7cfe897 100644 --- a/config/app.go +++ b/config/app.go @@ -5,6 +5,7 @@ import ( "github.com/goravel/framework/console" "github.com/goravel/framework/database" foundationProviders "github.com/goravel/framework/foundation/providers" + "github.com/goravel/framework/http" "github.com/goravel/framework/log" "github.com/goravel/framework/route" "github.com/goravel/framework/support" @@ -44,6 +45,8 @@ func init() { //Application host, http server listening address. "host": config.Env("APP_HOST", "127.0.0.1:3000"), + "grpc_host": config.Env("GRPC_HOST", ""), + //Autoloaded service providers //The service providers listed here will be automatically loaded on the //request to your application. Feel free to add your own services to @@ -53,10 +56,12 @@ func init() { &console.ServiceProvider{}, &database.ServiceProvider{}, &cache.ServiceProvider{}, + &http.ServiceProvider{}, &foundationProviders.ArtisanServiceProvider{}, &route.ServiceProvider{}, &providers.AppServiceProvider{}, &providers.RouteServiceProvider{}, + &providers.GrpcServiceProvider{}, }, }) } diff --git a/go.mod b/go.mod index f1699a8..b734369 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.17 require ( github.com/gin-gonic/gin v1.7.3 - github.com/goravel/framework v0.2.3 + github.com/goravel/framework v0.3.1 ) require ( @@ -50,8 +50,11 @@ require ( github.com/urfave/cli/v2 v2.3.0 // indirect go.uber.org/atomic v1.9.0 // indirect golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871 // indirect + golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 // indirect golang.org/x/sys v0.0.0-20211214234402-4825e8c3871d // indirect golang.org/x/text v0.3.7 // indirect + google.golang.org/genproto v0.0.0-20211013025323-ce878158c4d4 // indirect + google.golang.org/grpc v1.43.0 // indirect google.golang.org/protobuf v1.27.1 // indirect gopkg.in/ini.v1 v1.64.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/routes/web.go b/routes/web.go index e99990f..6f437b0 100644 --- a/routes/web.go +++ b/routes/web.go @@ -9,9 +9,9 @@ import ( func Web() { facades.Route.GET("/", func(c *gin.Context) { c.JSON(200, gin.H{ - "message": "pong", + "Hello": "Goravel", }) }) - facades.Route.GET("/users", controllers.UserController{}.Show) + facades.Route.GET("/user", controllers.UserController{}.Show) } diff --git a/storage/logs/.gitignore b/storage/logs/.gitignore index e69de29..c96a04f 100644 --- a/storage/logs/.gitignore +++ b/storage/logs/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/storage/temp/.gitignore b/storage/temp/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/storage/temp/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file