1
0
mirror of https://github.com/go-kratos/kratos.git synced 2026-05-22 10:15:24 +02:00
Files
kratos/internal/api/metadata/server.go
T
longxboy 0e0be64cba add api metadata (#901)
* add api metadata
2021-05-10 10:44:39 +08:00

37 lines
947 B
Go

package metadata
import (
"context"
"github.com/go-kratos/kratos/v2/api/kratos/api"
"google.golang.org/grpc"
anypb "google.golang.org/protobuf/types/known/anypb"
)
// Server is api meta server
type Server struct {
api.UnimplementedMetadataServer
s *Service
}
// NewServer create server instance
func NewServer(grpcSrv ...*grpc.Server) *Server {
return &Server{s: NewService(grpcSrv...)}
}
// ListServices return all services
func (s *Server) ListServices(ctx context.Context, in *anypb.Any) (*api.ListServicesReply, error) {
var reply api.ListServicesReply
var err error
reply.Services, err = s.s.ListServices(ctx)
return &reply, err
}
// GetServiceMeta return service meta by name
func (s *Server) GetServiceMeta(ctx context.Context, in *api.GetServiceMetaRequest) (*api.GetServiceMetaReply, error) {
var reply api.GetServiceMetaReply
var err error
reply.ProtoSet, err = s.s.GetServiceMeta(ctx, in.Name)
return &reply, err
}