add generate server and swagger

This commit is contained in:
2024-05-18 05:34:55 +07:00
parent 5bba5821ab
commit 286048d068
11 changed files with 1220 additions and 15 deletions
+72 -14
View File
@@ -1,21 +1,79 @@
package main
import (
"cake_crm/internal/models/storage/storage_file"
"cake_crm/internal/services/server_web"
crm "cake_crm/proto"
"context"
"github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
"log"
"net"
"net/http"
)
func main() {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
storage := storage_file.NewStorageFile("resources/db.json")
_ = storage
server := server_web.NewServer(storage, 8080)
err := server.Run(ctx)
if err != nil {
panic(err)
}
type server struct {
crm.UnimplementedCRMServer
}
func NewServer() *server {
return &server{}
}
func (s *server) GetCatalog(ctx context.Context, req *crm.GetCatalogReq) (*crm.CatalogRsp, error) {
return nil, nil
}
func main() {
//ctx, cancel := context.WithCancel(context.Background())
//defer cancel()
//
//storage := storage_file.NewStorageFile("resources/db.json")
//_ = storage
//
//server := server_web.NewServer(storage, 8080)
//err := server.Run(ctx)
//if err != nil {
// panic(err)
//}
// Create a listener on TCP port
lis, err := net.Listen("tcp", ":8080")
if err != nil {
log.Fatalln("Failed to listen:", err)
}
// Create a gRPC server object
s := grpc.NewServer()
// Attach the Greeter service to the server
crm.RegisterCRMServer(s, &server{})
// Serve gRPC server
log.Println("Serving gRPC on 0.0.0.0:8080")
go func() {
log.Fatalln(s.Serve(lis))
}()
// Create a client connection to the gRPC server we just started
// This is where the gRPC-Gateway proxies the requests
conn, err := grpc.NewClient(
"0.0.0.0:8080",
grpc.WithTransportCredentials(insecure.NewCredentials()),
)
if err != nil {
log.Fatalln("Failed to dial server:", err)
}
gwmux := runtime.NewServeMux()
// Register Greeter
err = crm.RegisterCRMHandler(context.Background(), gwmux, conn)
if err != nil {
log.Fatalln("Failed to register gateway:", err)
}
gwServer := &http.Server{
Addr: ":8090",
Handler: gwmux,
}
log.Println("Serving gRPC-Gateway on http://0.0.0.0:8090")
log.Fatalln(gwServer.ListenAndServe())
}