endpoint

package
v0.0.0-...-6a8978f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 24, 2022 License: MIT Imports: 12 Imported by: 2

README

服务注册的功能管理

Documentation

Index

Constants

View Source
const (
	AppName = "endpoint"
)

Variables

View Source
var File_apps_endpoint_pb_endpoint_proto protoreflect.FileDescriptor
View Source
var File_apps_endpoint_pb_rpc_proto protoreflect.FileDescriptor
View Source
var RPC_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "go8.devcloud.mcenter.endpoint.RPC",
	HandlerType: (*RPCServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "RegistryEndpoint",
			Handler:    _RPC_RegistryEndpoint_Handler,
		},
		{
			MethodName: "DescribeEndpoint",
			Handler:    _RPC_DescribeEndpoint_Handler,
		},
		{
			MethodName: "QueryEndpoints",
			Handler:    _RPC_QueryEndpoints_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "apps/endpoint/pb/rpc.proto",
}

RPC_ServiceDesc is the grpc.ServiceDesc for RPC service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

Functions

func GenHashID

func GenHashID(service, path string) string

GenHashID hash id

func RegisterRPCServer

func RegisterRPCServer(s grpc.ServiceRegistrar, srv RPCServer)

Types

type DescribeEndpointRequest

type DescribeEndpointRequest struct {

	// @gotags: json:"id"
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	// contains filtered or unexported fields
}

DescribeEndpointRequest todo

func (*DescribeEndpointRequest) Descriptor deprecated

func (*DescribeEndpointRequest) Descriptor() ([]byte, []int)

Deprecated: Use DescribeEndpointRequest.ProtoReflect.Descriptor instead.

func (*DescribeEndpointRequest) GetId

func (x *DescribeEndpointRequest) GetId() string

func (*DescribeEndpointRequest) ProtoMessage

func (*DescribeEndpointRequest) ProtoMessage()

func (*DescribeEndpointRequest) ProtoReflect

func (x *DescribeEndpointRequest) ProtoReflect() protoreflect.Message

func (*DescribeEndpointRequest) Reset

func (x *DescribeEndpointRequest) Reset()

func (*DescribeEndpointRequest) String

func (x *DescribeEndpointRequest) String() string

type Endpoint

type Endpoint struct {

	// 端点名称
	// @gotags: bson:"_id" json:"id" validate:"required,lte=64"
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id" validate:"required,lte=64"`
	// 创建时间
	// @gotags: bson:"create_at" json:"create_at,omitempty"
	CreateAt int64 `protobuf:"varint,2,opt,name=create_at,json=createAt,proto3" json:"create_at,omitempty" bson:"create_at"`
	// 更新时间
	// @gotags: bson:"update_at" json:"update_at,omitempty"
	UpdateAt int64 `protobuf:"varint,3,opt,name=update_at,json=updateAt,proto3" json:"update_at,omitempty" bson:"update_at"`
	// 该功能属于那个服务
	// @gotags: bson:"service_id" json:"service_id,omitempty" validate:"required,lte=64"
	ServiceId string `` /* 133-byte string literal not displayed */
	// 服务那个版本的功能
	// @gotags: bson:"version" json:"version,omitempty" validate:"required,lte=64"
	Version string `protobuf:"bytes,5,opt,name=version,proto3" json:"version,omitempty" bson:"version" validate:"required,lte=64"`
	// 路由条目信息
	// @gotags: bson:"entry" json:"entry" validate:"required"
	Entry *Entry `protobuf:"bytes,6,opt,name=entry,proto3" json:"entry" bson:"entry" validate:"required"`
	// contains filtered or unexported fields
}

服务的功能: maudit [resource:OperateLog action:List] Path:Restful接口的Path(URI) Endpoint Service's features

func NewDefaultEndpoint

func NewDefaultEndpoint() *Endpoint

NewDefaultEndpoint todo

func (*Endpoint) Descriptor deprecated

func (*Endpoint) Descriptor() ([]byte, []int)

Deprecated: Use Endpoint.ProtoReflect.Descriptor instead.

func (*Endpoint) GetCreateAt

func (x *Endpoint) GetCreateAt() int64

func (*Endpoint) GetEntry

func (x *Endpoint) GetEntry() *Entry

func (*Endpoint) GetId

func (x *Endpoint) GetId() string

func (*Endpoint) GetServiceId

func (x *Endpoint) GetServiceId() string

func (*Endpoint) GetUpdateAt

func (x *Endpoint) GetUpdateAt() int64

func (*Endpoint) GetVersion

func (x *Endpoint) GetVersion() string

func (*Endpoint) ProtoMessage

func (*Endpoint) ProtoMessage()

func (*Endpoint) ProtoReflect

func (x *Endpoint) ProtoReflect() protoreflect.Message

func (*Endpoint) Reset

func (x *Endpoint) Reset()

func (*Endpoint) String

func (x *Endpoint) String() string

type EndpointSet

type EndpointSet struct {

	// @gotags: bson:"total" json:"total"
	Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total" bson:"total"`
	// @gotags: bson:"items" json:"items"
	Items []*Endpoint `protobuf:"bytes,2,rep,name=items,proto3" json:"items" bson:"items"`
	// contains filtered or unexported fields
}

func NewEndpointSet

func NewEndpointSet() *EndpointSet

NewEndpointSet 实例化

func (*EndpointSet) Add

func (s *EndpointSet) Add(e *Endpoint)

Add 添加

func (*EndpointSet) Descriptor deprecated

func (*EndpointSet) Descriptor() ([]byte, []int)

Deprecated: Use EndpointSet.ProtoReflect.Descriptor instead.

func (*EndpointSet) GetItems

func (x *EndpointSet) GetItems() []*Endpoint

func (*EndpointSet) GetTotal

func (x *EndpointSet) GetTotal() int64

func (*EndpointSet) ProtoMessage

func (*EndpointSet) ProtoMessage()

func (*EndpointSet) ProtoReflect

func (x *EndpointSet) ProtoReflect() protoreflect.Message

func (*EndpointSet) Reset

func (x *EndpointSet) Reset()

func (*EndpointSet) String

func (x *EndpointSet) String() string

type Entry

type Entry struct {

	// 函数名称
	// @gotags: bson:"function_name" json:"function_name"
	FunctionName string `protobuf:"bytes,2,opt,name=function_name,json=functionName,proto3" json:"function_name" bson:"function_name"`
	// HTTP path 用于自动生成http api
	// @gotags: bson:"path" json:"path"
	Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path" bson:"path"`
	// HTTP method 用于自动生成http api
	// @gotags: bson:"method" json:"method"
	Method string `protobuf:"bytes,4,opt,name=method,proto3" json:"method" bson:"method"`
	// 关键: 资源名称, GoRestuful的路由的Meta来定义该接口操作的资源
	// @gotags: bson:"resource" json:"resource"
	Resource string `protobuf:"bytes,5,opt,name=resource,proto3" json:"resource" bson:"resource"`
	// 是否校验用户身份 (acccess_token)
	// @gotags: bson:"auth_enable" json:"auth_enable"
	AuthEnable bool `protobuf:"varint,6,opt,name=auth_enable,json=authEnable,proto3" json:"auth_enable" bson:"auth_enable"`
	// 是否校验用户权限
	// @gotags: bson:"permission_enable" json:"permission_enable"
	PermissionEnable bool `protobuf:"varint,7,opt,name=permission_enable,json=permissionEnable,proto3" json:"permission_enable" bson:"permission_enable"`
	// 允许的通过的身份标识符, 比如角色, 用户类型之类
	// @gotags: bson:"allow" json:"allow"
	Allow []string `protobuf:"bytes,12,rep,name=allow,proto3" json:"allow" bson:"allow"`
	// 是否开启操作审计, 开启后这次操作将被记录
	// @gotags: bson:"audit_log" json:"audit_log"
	AuditLog bool `protobuf:"varint,9,opt,name=audit_log,json=auditLog,proto3" json:"audit_log" bson:"audit_log"`
	// 名称空间不能为空
	// @gotags: bson:"required_namespace" json:"required_namespace"
	RequiredNamespace bool `` /* 130-byte string literal not displayed */
	// 关键: 标签, {"action": "list"}
	// @gotags: bson:"labels" json:"labels"
	Labels map[string]string `` /* 157-byte string literal not displayed */
	// 扩展属性
	// @gotags: bson:"extension" json:"extension"
	Extension map[string]string `` /* 167-byte string literal not displayed */
	// contains filtered or unexported fields
}

Entry 路由条目

func (*Entry) Descriptor deprecated

func (*Entry) Descriptor() ([]byte, []int)

Deprecated: Use Entry.ProtoReflect.Descriptor instead.

func (*Entry) GetAllow

func (x *Entry) GetAllow() []string

func (*Entry) GetAuditLog

func (x *Entry) GetAuditLog() bool

func (*Entry) GetAuthEnable

func (x *Entry) GetAuthEnable() bool

func (*Entry) GetExtension

func (x *Entry) GetExtension() map[string]string

func (*Entry) GetFunctionName

func (x *Entry) GetFunctionName() string

func (*Entry) GetLabels

func (x *Entry) GetLabels() map[string]string

func (*Entry) GetMethod

func (x *Entry) GetMethod() string

func (*Entry) GetPath

func (x *Entry) GetPath() string

func (*Entry) GetPermissionEnable

func (x *Entry) GetPermissionEnable() bool

func (*Entry) GetRequiredNamespace

func (x *Entry) GetRequiredNamespace() bool

func (*Entry) GetResource

func (x *Entry) GetResource() string

func (*Entry) ProtoMessage

func (*Entry) ProtoMessage()

func (*Entry) ProtoReflect

func (x *Entry) ProtoReflect() protoreflect.Message

func (*Entry) Reset

func (x *Entry) Reset()

func (*Entry) String

func (x *Entry) String() string

type QueryEndpointRequest

type QueryEndpointRequest struct {

	// @gotags: json:"page"
	Page *request.PageRequest `protobuf:"bytes,1,opt,name=page,proto3" json:"page"`
	// 几个服务总共由哪些Endpoinit
	// 查询完 Endpoint, 根据Label进行匹配
	// @gotags: json:"service_ids"
	ServiceIds []string `protobuf:"bytes,2,rep,name=service_ids,json=serviceIds,proto3" json:"service_ids"`
	// @gotags: json:"path"
	Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path"`
	// @gotags: json:"method"
	Method string `protobuf:"bytes,4,opt,name=method,proto3" json:"method"`
	// @gotags: json:"function_name"
	FunctionName string `protobuf:"bytes,5,opt,name=function_name,json=functionName,proto3" json:"function_name"`
	// 根据资源名称和标签能匹配到对应的Endpoint
	// @gotags: json:"resources"
	Resources []string `protobuf:"bytes,6,rep,name=resources,proto3" json:"resources"`
	// @gotags: json:"labels"
	Labels map[string]string `` /* 143-byte string literal not displayed */
	// @gotags: json:"permission_enable"
	PermissionEnable *bool `protobuf:"varint,8,opt,name=permission_enable,json=permissionEnable,proto3,oneof" json:"permission_enable"`
	// contains filtered or unexported fields
}

QueryEndpointRequest 查询应用列表

func (*QueryEndpointRequest) Descriptor deprecated

func (*QueryEndpointRequest) Descriptor() ([]byte, []int)

Deprecated: Use QueryEndpointRequest.ProtoReflect.Descriptor instead.

func (*QueryEndpointRequest) GetFunctionName

func (x *QueryEndpointRequest) GetFunctionName() string

func (*QueryEndpointRequest) GetLabels

func (x *QueryEndpointRequest) GetLabels() map[string]string

func (*QueryEndpointRequest) GetMethod

func (x *QueryEndpointRequest) GetMethod() string

func (*QueryEndpointRequest) GetPage

func (*QueryEndpointRequest) GetPath

func (x *QueryEndpointRequest) GetPath() string

func (*QueryEndpointRequest) GetPermissionEnable

func (x *QueryEndpointRequest) GetPermissionEnable() bool

func (*QueryEndpointRequest) GetResources

func (x *QueryEndpointRequest) GetResources() []string

func (*QueryEndpointRequest) GetServiceIds

func (x *QueryEndpointRequest) GetServiceIds() []string

func (*QueryEndpointRequest) ProtoMessage

func (*QueryEndpointRequest) ProtoMessage()

func (*QueryEndpointRequest) ProtoReflect

func (x *QueryEndpointRequest) ProtoReflect() protoreflect.Message

func (*QueryEndpointRequest) Reset

func (x *QueryEndpointRequest) Reset()

func (*QueryEndpointRequest) String

func (x *QueryEndpointRequest) String() string

type RPCClient

type RPCClient interface {
	// 服务接口注册
	RegistryEndpoint(ctx context.Context, in *RegistryRequest, opts ...grpc.CallOption) (*RegistryResponse, error)
	DescribeEndpoint(ctx context.Context, in *DescribeEndpointRequest, opts ...grpc.CallOption) (*Endpoint, error)
	QueryEndpoints(ctx context.Context, in *QueryEndpointRequest, opts ...grpc.CallOption) (*EndpointSet, error)
}

RPCClient is the client API for RPC service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

func NewRPCClient

func NewRPCClient(cc grpc.ClientConnInterface) RPCClient

type RPCServer

type RPCServer interface {
	// 服务接口注册
	RegistryEndpoint(context.Context, *RegistryRequest) (*RegistryResponse, error)
	DescribeEndpoint(context.Context, *DescribeEndpointRequest) (*Endpoint, error)
	QueryEndpoints(context.Context, *QueryEndpointRequest) (*EndpointSet, error)
	// contains filtered or unexported methods
}

RPCServer is the server API for RPC service. All implementations must embed UnimplementedRPCServer for forward compatibility

type RegistryRequest

type RegistryRequest struct {

	// @gotags: json:"client_id" validate:"required"
	ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id" validate:"required"`
	// @gotags: json:"client_secret" validate:"required"
	ClientSecret string `protobuf:"bytes,2,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret" validate:"required"`
	// @gotags: json:"version" validate:"required,lte=32"
	Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version" validate:"required,lte=32"`
	// @gotags: json:"entries"
	Entries []*Entry `protobuf:"bytes,4,rep,name=entries,proto3" json:"entries"`
	// contains filtered or unexported fields
}

RegistryRequest 服务注册请求, 验证服务的合法性, 需要客户端凭证

func NewRegistryRequest

func NewRegistryRequest(version string, entries []*Entry) *RegistryRequest

NewRegistryRequest 注册请求

func (*RegistryRequest) Descriptor deprecated

func (*RegistryRequest) Descriptor() ([]byte, []int)

Deprecated: Use RegistryRequest.ProtoReflect.Descriptor instead.

func (*RegistryRequest) Endpoints

func (req *RegistryRequest) Endpoints(serviceID string) []*Endpoint

Endpoints 功能列表

func (*RegistryRequest) GetClientId

func (x *RegistryRequest) GetClientId() string

func (*RegistryRequest) GetClientSecret

func (x *RegistryRequest) GetClientSecret() string

func (*RegistryRequest) GetEntries

func (x *RegistryRequest) GetEntries() []*Entry

func (*RegistryRequest) GetVersion

func (x *RegistryRequest) GetVersion() string

func (*RegistryRequest) ProtoMessage

func (*RegistryRequest) ProtoMessage()

func (*RegistryRequest) ProtoReflect

func (x *RegistryRequest) ProtoReflect() protoreflect.Message

func (*RegistryRequest) Reset

func (x *RegistryRequest) Reset()

func (*RegistryRequest) String

func (x *RegistryRequest) String() string

type RegistryResponse

type RegistryResponse struct {

	// @gotags: json:"message"
	Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message"`
	// contains filtered or unexported fields
}

RegistryReponse todo

func NewRegistryResponse

func NewRegistryResponse(message string) *RegistryResponse

NewRegistryResponse todo

func (*RegistryResponse) Descriptor deprecated

func (*RegistryResponse) Descriptor() ([]byte, []int)

Deprecated: Use RegistryResponse.ProtoReflect.Descriptor instead.

func (*RegistryResponse) GetMessage

func (x *RegistryResponse) GetMessage() string

func (*RegistryResponse) ProtoMessage

func (*RegistryResponse) ProtoMessage()

func (*RegistryResponse) ProtoReflect

func (x *RegistryResponse) ProtoReflect() protoreflect.Message

func (*RegistryResponse) Reset

func (x *RegistryResponse) Reset()

func (*RegistryResponse) String

func (x *RegistryResponse) String() string

type Service

type Service interface {
	RPCServer
}

type UnimplementedRPCServer

type UnimplementedRPCServer struct {
}

UnimplementedRPCServer must be embedded to have forward compatible implementations.

func (UnimplementedRPCServer) DescribeEndpoint

func (UnimplementedRPCServer) QueryEndpoints

func (UnimplementedRPCServer) RegistryEndpoint

type UnsafeRPCServer

type UnsafeRPCServer interface {
	// contains filtered or unexported methods
}

UnsafeRPCServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to RPCServer will result in compilation errors.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL