mirror of
https://github.com/zhufuyi/sponge.git
synced 2025-10-22 00:20:08 +08:00
rename
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -5,7 +5,8 @@
|
|||||||
*.so
|
*.so
|
||||||
*.dylib
|
*.dylib
|
||||||
*.log
|
*.log
|
||||||
cmd/sponge/sponge
|
cmd/serverNameExample/serverNameExample
|
||||||
|
*@@*@@*
|
||||||
|
|
||||||
# Test binary, built with `go test -c`
|
# Test binary, built with `go test -c`
|
||||||
*.test
|
*.test
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
# This file configures github.com/zhufuyi/pkg.
|
# This file configures github.com/zhufuyi/sponge.
|
||||||
|
|
||||||
run:
|
run:
|
||||||
# timeout for analysis, e.g. 30s, 5m, default is 1m
|
# timeout for analysis, e.g. 30s, 5m, default is 1m
|
||||||
@@ -129,7 +129,7 @@ linters-settings:
|
|||||||
goimports:
|
goimports:
|
||||||
# put imports beginning with prefix after 3rd-party packages;
|
# put imports beginning with prefix after 3rd-party packages;
|
||||||
# it's a comma-separated list of prefixes
|
# it's a comma-separated list of prefixes
|
||||||
local-prefixes: sponge
|
local-prefixes: github.com/zhufuyi/sponge
|
||||||
|
|
||||||
golint:
|
golint:
|
||||||
# minimal confidence for issues, default is 0.8
|
# minimal confidence for issues, default is 0.8
|
||||||
|
36
Makefile
36
Makefile
@@ -33,8 +33,8 @@ ci-lint:
|
|||||||
.PHONY: build
|
.PHONY: build
|
||||||
# go build the linux amd64 binary file
|
# go build the linux amd64 binary file
|
||||||
build:
|
build:
|
||||||
@cd cmd/sponge && CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -gcflags "all=-N -l"
|
@cd cmd/serverNameExample && CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -gcflags "all=-N -l"
|
||||||
@echo "build finished, binary file in path 'cmd/sponge'"
|
@echo "build finished, binary file in path 'cmd/serverNameExample'"
|
||||||
|
|
||||||
|
|
||||||
.PHONY: run
|
.PHONY: run
|
||||||
@@ -71,26 +71,26 @@ cover:
|
|||||||
.PHONY: docker
|
.PHONY: docker
|
||||||
# build docker image
|
# build docker image
|
||||||
docker:
|
docker:
|
||||||
@tar zcf sponge.tar.gz ${PROJECT_FILES}
|
@tar zcf serverNameExample.tar.gz ${PROJECT_FILES}
|
||||||
@mv -f sponge.tar.gz build/
|
@mv -f serverNameExample.tar.gz build/
|
||||||
docker build -t sponge/sponge:latest build/
|
docker build -t project-name-example/server-name-example:latest build/
|
||||||
@rm -rf build/sponge.tar.gz
|
@rm -rf build/serverNameExample.tar.gz
|
||||||
|
|
||||||
|
|
||||||
.PHONY: docker-image
|
.PHONY: docker-image
|
||||||
# copy the binary file to build the docker image, skip the compile to binary in docker
|
# copy the binary file to build the docker image, skip the compile to binary in docker
|
||||||
docker-image: build
|
docker-image: build
|
||||||
@bash scripts/grpc_health_probe.sh
|
@bash scripts/grpc_health_probe.sh
|
||||||
@mv -f cmd/sponge/sponge build/ && cp -f /tmp/grpc_health_probe build/
|
@mv -f cmd/serverNameExample/serverNameExample build/ && cp -f /tmp/grpc_health_probe build/
|
||||||
@mkdir -p build/config && cp -f config/conf.yml build/config/
|
@mkdir -p build/configs && cp -f configs/serverNameExample.yml build/configs/
|
||||||
docker build -f build/Dockerfile_sponge -t sponge/sponge:latest build/
|
docker build -f build/Dockerfile_cp -t project-name-example/server-name-example:latest build/
|
||||||
@rm -rf build/sponge build/config/ build/grpc_health_probe
|
@rm -rf build/serverNameExample build/configs/ build/grpc_health_probe
|
||||||
|
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
# clean binary file, cover.out, redundant dependency packages
|
# clean binary file, cover.out, redundant dependency packages
|
||||||
clean:
|
clean:
|
||||||
@rm -vrf cmd/sponge/sponge
|
@rm -vrf cmd/serverNameExample/serverNameExample
|
||||||
@rm -vrf cover.out
|
@rm -vrf cover.out
|
||||||
@go mod tidy
|
@go mod tidy
|
||||||
@echo "clean finished"
|
@echo "clean finished"
|
||||||
@@ -99,7 +99,7 @@ clean:
|
|||||||
.PHONY: docs
|
.PHONY: docs
|
||||||
# generate swagger doc
|
# generate swagger doc
|
||||||
docs:
|
docs:
|
||||||
@swag init -g cmd/sponge/main.go
|
@swag init -g cmd/serverNameExample/main.go
|
||||||
@echo "see docs by: http://localhost:8080/swagger/index.html"
|
@echo "see docs by: http://localhost:8080/swagger/index.html"
|
||||||
|
|
||||||
|
|
||||||
@@ -107,16 +107,8 @@ docs:
|
|||||||
# generate interactive visual function dependency graphs
|
# generate interactive visual function dependency graphs
|
||||||
graph:
|
graph:
|
||||||
@echo "generating graph ......"
|
@echo "generating graph ......"
|
||||||
@go-callvis github.com/zhufuyi/sponge
|
@cd cmd/serverNameExample
|
||||||
|
@go-callvis -nostd github.com/zhufuyi/sponge
|
||||||
|
|
||||||
.PHONY: mockgen
|
|
||||||
# mockgen gen mock file
|
|
||||||
mockgen:
|
|
||||||
cd ./internal && for file in `egrep -rnl "type.*?interface" ./repository | grep -v "_test" `; do \
|
|
||||||
echo $$file ; \
|
|
||||||
cd .. && mockgen -destination="./internal/mock/$$file" -source="./internal/$$file" && cd ./internal ; \
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
.PHONY: proto
|
.PHONY: proto
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.28.0
|
// protoc-gen-go v1.28.0
|
||||||
// protoc v3.20.1
|
// protoc v3.20.1
|
||||||
// source: api/userExample/v1/userExample.proto
|
// source: api/serverNameExample/v1/userExample.proto
|
||||||
|
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
@@ -58,11 +58,11 @@ func (x GenderType) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (GenderType) Descriptor() protoreflect.EnumDescriptor {
|
func (GenderType) Descriptor() protoreflect.EnumDescriptor {
|
||||||
return file_api_userExample_v1_userExample_proto_enumTypes[0].Descriptor()
|
return file_api_serverNameExample_v1_userExample_proto_enumTypes[0].Descriptor()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (GenderType) Type() protoreflect.EnumType {
|
func (GenderType) Type() protoreflect.EnumType {
|
||||||
return &file_api_userExample_v1_userExample_proto_enumTypes[0]
|
return &file_api_serverNameExample_v1_userExample_proto_enumTypes[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x GenderType) Number() protoreflect.EnumNumber {
|
func (x GenderType) Number() protoreflect.EnumNumber {
|
||||||
@@ -71,7 +71,7 @@ func (x GenderType) Number() protoreflect.EnumNumber {
|
|||||||
|
|
||||||
// Deprecated: Use GenderType.Descriptor instead.
|
// Deprecated: Use GenderType.Descriptor instead.
|
||||||
func (GenderType) EnumDescriptor() ([]byte, []int) {
|
func (GenderType) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_api_userExample_v1_userExample_proto_rawDescGZIP(), []int{0}
|
return file_api_serverNameExample_v1_userExample_proto_rawDescGZIP(), []int{0}
|
||||||
}
|
}
|
||||||
|
|
||||||
type CreateUserExampleRequest struct {
|
type CreateUserExampleRequest struct {
|
||||||
@@ -91,7 +91,7 @@ type CreateUserExampleRequest struct {
|
|||||||
func (x *CreateUserExampleRequest) Reset() {
|
func (x *CreateUserExampleRequest) Reset() {
|
||||||
*x = CreateUserExampleRequest{}
|
*x = CreateUserExampleRequest{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[0]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[0]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@@ -104,7 +104,7 @@ func (x *CreateUserExampleRequest) String() string {
|
|||||||
func (*CreateUserExampleRequest) ProtoMessage() {}
|
func (*CreateUserExampleRequest) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *CreateUserExampleRequest) ProtoReflect() protoreflect.Message {
|
func (x *CreateUserExampleRequest) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[0]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[0]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@@ -117,7 +117,7 @@ func (x *CreateUserExampleRequest) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use CreateUserExampleRequest.ProtoReflect.Descriptor instead.
|
// Deprecated: Use CreateUserExampleRequest.ProtoReflect.Descriptor instead.
|
||||||
func (*CreateUserExampleRequest) Descriptor() ([]byte, []int) {
|
func (*CreateUserExampleRequest) Descriptor() ([]byte, []int) {
|
||||||
return file_api_userExample_v1_userExample_proto_rawDescGZIP(), []int{0}
|
return file_api_serverNameExample_v1_userExample_proto_rawDescGZIP(), []int{0}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *CreateUserExampleRequest) GetName() string {
|
func (x *CreateUserExampleRequest) GetName() string {
|
||||||
@@ -180,7 +180,7 @@ type CreateUserExampleReply struct {
|
|||||||
func (x *CreateUserExampleReply) Reset() {
|
func (x *CreateUserExampleReply) Reset() {
|
||||||
*x = CreateUserExampleReply{}
|
*x = CreateUserExampleReply{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[1]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[1]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@@ -193,7 +193,7 @@ func (x *CreateUserExampleReply) String() string {
|
|||||||
func (*CreateUserExampleReply) ProtoMessage() {}
|
func (*CreateUserExampleReply) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *CreateUserExampleReply) ProtoReflect() protoreflect.Message {
|
func (x *CreateUserExampleReply) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[1]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[1]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@@ -206,7 +206,7 @@ func (x *CreateUserExampleReply) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use CreateUserExampleReply.ProtoReflect.Descriptor instead.
|
// Deprecated: Use CreateUserExampleReply.ProtoReflect.Descriptor instead.
|
||||||
func (*CreateUserExampleReply) Descriptor() ([]byte, []int) {
|
func (*CreateUserExampleReply) Descriptor() ([]byte, []int) {
|
||||||
return file_api_userExample_v1_userExample_proto_rawDescGZIP(), []int{1}
|
return file_api_serverNameExample_v1_userExample_proto_rawDescGZIP(), []int{1}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *CreateUserExampleReply) GetId() uint64 {
|
func (x *CreateUserExampleReply) GetId() uint64 {
|
||||||
@@ -227,7 +227,7 @@ type DeleteUserExampleByIDRequest struct {
|
|||||||
func (x *DeleteUserExampleByIDRequest) Reset() {
|
func (x *DeleteUserExampleByIDRequest) Reset() {
|
||||||
*x = DeleteUserExampleByIDRequest{}
|
*x = DeleteUserExampleByIDRequest{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[2]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[2]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@@ -240,7 +240,7 @@ func (x *DeleteUserExampleByIDRequest) String() string {
|
|||||||
func (*DeleteUserExampleByIDRequest) ProtoMessage() {}
|
func (*DeleteUserExampleByIDRequest) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *DeleteUserExampleByIDRequest) ProtoReflect() protoreflect.Message {
|
func (x *DeleteUserExampleByIDRequest) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[2]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[2]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@@ -253,7 +253,7 @@ func (x *DeleteUserExampleByIDRequest) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use DeleteUserExampleByIDRequest.ProtoReflect.Descriptor instead.
|
// Deprecated: Use DeleteUserExampleByIDRequest.ProtoReflect.Descriptor instead.
|
||||||
func (*DeleteUserExampleByIDRequest) Descriptor() ([]byte, []int) {
|
func (*DeleteUserExampleByIDRequest) Descriptor() ([]byte, []int) {
|
||||||
return file_api_userExample_v1_userExample_proto_rawDescGZIP(), []int{2}
|
return file_api_serverNameExample_v1_userExample_proto_rawDescGZIP(), []int{2}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *DeleteUserExampleByIDRequest) GetId() uint64 {
|
func (x *DeleteUserExampleByIDRequest) GetId() uint64 {
|
||||||
@@ -272,7 +272,7 @@ type DeleteUserExampleByIDReply struct {
|
|||||||
func (x *DeleteUserExampleByIDReply) Reset() {
|
func (x *DeleteUserExampleByIDReply) Reset() {
|
||||||
*x = DeleteUserExampleByIDReply{}
|
*x = DeleteUserExampleByIDReply{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[3]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[3]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@@ -285,7 +285,7 @@ func (x *DeleteUserExampleByIDReply) String() string {
|
|||||||
func (*DeleteUserExampleByIDReply) ProtoMessage() {}
|
func (*DeleteUserExampleByIDReply) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *DeleteUserExampleByIDReply) ProtoReflect() protoreflect.Message {
|
func (x *DeleteUserExampleByIDReply) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[3]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[3]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@@ -298,7 +298,7 @@ func (x *DeleteUserExampleByIDReply) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use DeleteUserExampleByIDReply.ProtoReflect.Descriptor instead.
|
// Deprecated: Use DeleteUserExampleByIDReply.ProtoReflect.Descriptor instead.
|
||||||
func (*DeleteUserExampleByIDReply) Descriptor() ([]byte, []int) {
|
func (*DeleteUserExampleByIDReply) Descriptor() ([]byte, []int) {
|
||||||
return file_api_userExample_v1_userExample_proto_rawDescGZIP(), []int{3}
|
return file_api_serverNameExample_v1_userExample_proto_rawDescGZIP(), []int{3}
|
||||||
}
|
}
|
||||||
|
|
||||||
type UpdateUserExampleByIDRequest struct {
|
type UpdateUserExampleByIDRequest struct {
|
||||||
@@ -310,7 +310,7 @@ type UpdateUserExampleByIDRequest struct {
|
|||||||
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // 名称
|
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // 名称
|
||||||
Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` // 邮件
|
Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` // 邮件
|
||||||
Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` // 密码
|
Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` // 密码
|
||||||
Phone string `protobuf:"bytes,5,opt,name=phone,proto3" json:"phone,omitempty"` // 手机号码,必须在前加'+86'
|
Phone string `protobuf:"bytes,5,opt,name=phone,proto3" json:"phone,omitempty"` // 手机号码
|
||||||
Avatar string `protobuf:"bytes,6,opt,name=avatar,proto3" json:"avatar,omitempty"` // 头像
|
Avatar string `protobuf:"bytes,6,opt,name=avatar,proto3" json:"avatar,omitempty"` // 头像
|
||||||
Age int32 `protobuf:"varint,7,opt,name=age,proto3" json:"age,omitempty"` // 年龄
|
Age int32 `protobuf:"varint,7,opt,name=age,proto3" json:"age,omitempty"` // 年龄
|
||||||
Gender GenderType `protobuf:"varint,8,opt,name=gender,proto3,enum=api.userExample.v1.GenderType" json:"gender,omitempty"` // 性别,1:男,2:女
|
Gender GenderType `protobuf:"varint,8,opt,name=gender,proto3,enum=api.userExample.v1.GenderType" json:"gender,omitempty"` // 性别,1:男,2:女
|
||||||
@@ -321,7 +321,7 @@ type UpdateUserExampleByIDRequest struct {
|
|||||||
func (x *UpdateUserExampleByIDRequest) Reset() {
|
func (x *UpdateUserExampleByIDRequest) Reset() {
|
||||||
*x = UpdateUserExampleByIDRequest{}
|
*x = UpdateUserExampleByIDRequest{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[4]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[4]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@@ -334,7 +334,7 @@ func (x *UpdateUserExampleByIDRequest) String() string {
|
|||||||
func (*UpdateUserExampleByIDRequest) ProtoMessage() {}
|
func (*UpdateUserExampleByIDRequest) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *UpdateUserExampleByIDRequest) ProtoReflect() protoreflect.Message {
|
func (x *UpdateUserExampleByIDRequest) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[4]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[4]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@@ -347,7 +347,7 @@ func (x *UpdateUserExampleByIDRequest) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use UpdateUserExampleByIDRequest.ProtoReflect.Descriptor instead.
|
// Deprecated: Use UpdateUserExampleByIDRequest.ProtoReflect.Descriptor instead.
|
||||||
func (*UpdateUserExampleByIDRequest) Descriptor() ([]byte, []int) {
|
func (*UpdateUserExampleByIDRequest) Descriptor() ([]byte, []int) {
|
||||||
return file_api_userExample_v1_userExample_proto_rawDescGZIP(), []int{4}
|
return file_api_serverNameExample_v1_userExample_proto_rawDescGZIP(), []int{4}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *UpdateUserExampleByIDRequest) GetId() uint64 {
|
func (x *UpdateUserExampleByIDRequest) GetId() uint64 {
|
||||||
@@ -429,7 +429,7 @@ type UpdateUserExampleByIDReply struct {
|
|||||||
func (x *UpdateUserExampleByIDReply) Reset() {
|
func (x *UpdateUserExampleByIDReply) Reset() {
|
||||||
*x = UpdateUserExampleByIDReply{}
|
*x = UpdateUserExampleByIDReply{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[5]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[5]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@@ -442,7 +442,7 @@ func (x *UpdateUserExampleByIDReply) String() string {
|
|||||||
func (*UpdateUserExampleByIDReply) ProtoMessage() {}
|
func (*UpdateUserExampleByIDReply) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *UpdateUserExampleByIDReply) ProtoReflect() protoreflect.Message {
|
func (x *UpdateUserExampleByIDReply) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[5]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[5]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@@ -455,7 +455,7 @@ func (x *UpdateUserExampleByIDReply) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use UpdateUserExampleByIDReply.ProtoReflect.Descriptor instead.
|
// Deprecated: Use UpdateUserExampleByIDReply.ProtoReflect.Descriptor instead.
|
||||||
func (*UpdateUserExampleByIDReply) Descriptor() ([]byte, []int) {
|
func (*UpdateUserExampleByIDReply) Descriptor() ([]byte, []int) {
|
||||||
return file_api_userExample_v1_userExample_proto_rawDescGZIP(), []int{5}
|
return file_api_serverNameExample_v1_userExample_proto_rawDescGZIP(), []int{5}
|
||||||
}
|
}
|
||||||
|
|
||||||
type UserExample struct {
|
type UserExample struct {
|
||||||
@@ -466,7 +466,7 @@ type UserExample struct {
|
|||||||
Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
|
Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||||
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // 名称
|
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // 名称
|
||||||
Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` // 邮件
|
Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` // 邮件
|
||||||
Phone string `protobuf:"bytes,4,opt,name=phone,proto3" json:"phone,omitempty"` // 手机号码,必须在前加'+86'
|
Phone string `protobuf:"bytes,4,opt,name=phone,proto3" json:"phone,omitempty"` // 手机号码
|
||||||
Avatar string `protobuf:"bytes,5,opt,name=avatar,proto3" json:"avatar,omitempty"` // 头像
|
Avatar string `protobuf:"bytes,5,opt,name=avatar,proto3" json:"avatar,omitempty"` // 头像
|
||||||
Age int32 `protobuf:"varint,6,opt,name=age,proto3" json:"age,omitempty"` // 年龄
|
Age int32 `protobuf:"varint,6,opt,name=age,proto3" json:"age,omitempty"` // 年龄
|
||||||
Gender GenderType `protobuf:"varint,7,opt,name=gender,proto3,enum=api.userExample.v1.GenderType" json:"gender,omitempty"` // 性别,1:男,2:女
|
Gender GenderType `protobuf:"varint,7,opt,name=gender,proto3,enum=api.userExample.v1.GenderType" json:"gender,omitempty"` // 性别,1:男,2:女
|
||||||
@@ -479,7 +479,7 @@ type UserExample struct {
|
|||||||
func (x *UserExample) Reset() {
|
func (x *UserExample) Reset() {
|
||||||
*x = UserExample{}
|
*x = UserExample{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[6]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[6]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@@ -492,7 +492,7 @@ func (x *UserExample) String() string {
|
|||||||
func (*UserExample) ProtoMessage() {}
|
func (*UserExample) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *UserExample) ProtoReflect() protoreflect.Message {
|
func (x *UserExample) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[6]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[6]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@@ -505,7 +505,7 @@ func (x *UserExample) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use UserExample.ProtoReflect.Descriptor instead.
|
// Deprecated: Use UserExample.ProtoReflect.Descriptor instead.
|
||||||
func (*UserExample) Descriptor() ([]byte, []int) {
|
func (*UserExample) Descriptor() ([]byte, []int) {
|
||||||
return file_api_userExample_v1_userExample_proto_rawDescGZIP(), []int{6}
|
return file_api_serverNameExample_v1_userExample_proto_rawDescGZIP(), []int{6}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *UserExample) GetId() uint64 {
|
func (x *UserExample) GetId() uint64 {
|
||||||
@@ -596,7 +596,7 @@ type GetUserExampleByIDRequest struct {
|
|||||||
func (x *GetUserExampleByIDRequest) Reset() {
|
func (x *GetUserExampleByIDRequest) Reset() {
|
||||||
*x = GetUserExampleByIDRequest{}
|
*x = GetUserExampleByIDRequest{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[7]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[7]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@@ -609,7 +609,7 @@ func (x *GetUserExampleByIDRequest) String() string {
|
|||||||
func (*GetUserExampleByIDRequest) ProtoMessage() {}
|
func (*GetUserExampleByIDRequest) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *GetUserExampleByIDRequest) ProtoReflect() protoreflect.Message {
|
func (x *GetUserExampleByIDRequest) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[7]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[7]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@@ -622,7 +622,7 @@ func (x *GetUserExampleByIDRequest) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use GetUserExampleByIDRequest.ProtoReflect.Descriptor instead.
|
// Deprecated: Use GetUserExampleByIDRequest.ProtoReflect.Descriptor instead.
|
||||||
func (*GetUserExampleByIDRequest) Descriptor() ([]byte, []int) {
|
func (*GetUserExampleByIDRequest) Descriptor() ([]byte, []int) {
|
||||||
return file_api_userExample_v1_userExample_proto_rawDescGZIP(), []int{7}
|
return file_api_serverNameExample_v1_userExample_proto_rawDescGZIP(), []int{7}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *GetUserExampleByIDRequest) GetId() uint64 {
|
func (x *GetUserExampleByIDRequest) GetId() uint64 {
|
||||||
@@ -643,7 +643,7 @@ type GetUserExampleByIDReply struct {
|
|||||||
func (x *GetUserExampleByIDReply) Reset() {
|
func (x *GetUserExampleByIDReply) Reset() {
|
||||||
*x = GetUserExampleByIDReply{}
|
*x = GetUserExampleByIDReply{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[8]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[8]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@@ -656,7 +656,7 @@ func (x *GetUserExampleByIDReply) String() string {
|
|||||||
func (*GetUserExampleByIDReply) ProtoMessage() {}
|
func (*GetUserExampleByIDReply) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *GetUserExampleByIDReply) ProtoReflect() protoreflect.Message {
|
func (x *GetUserExampleByIDReply) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[8]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[8]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@@ -669,7 +669,7 @@ func (x *GetUserExampleByIDReply) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use GetUserExampleByIDReply.ProtoReflect.Descriptor instead.
|
// Deprecated: Use GetUserExampleByIDReply.ProtoReflect.Descriptor instead.
|
||||||
func (*GetUserExampleByIDReply) Descriptor() ([]byte, []int) {
|
func (*GetUserExampleByIDReply) Descriptor() ([]byte, []int) {
|
||||||
return file_api_userExample_v1_userExample_proto_rawDescGZIP(), []int{8}
|
return file_api_serverNameExample_v1_userExample_proto_rawDescGZIP(), []int{8}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *GetUserExampleByIDReply) GetUserExample() *UserExample {
|
func (x *GetUserExampleByIDReply) GetUserExample() *UserExample {
|
||||||
@@ -690,7 +690,7 @@ type ListUserExampleByIDsRequest struct {
|
|||||||
func (x *ListUserExampleByIDsRequest) Reset() {
|
func (x *ListUserExampleByIDsRequest) Reset() {
|
||||||
*x = ListUserExampleByIDsRequest{}
|
*x = ListUserExampleByIDsRequest{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[9]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[9]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@@ -703,7 +703,7 @@ func (x *ListUserExampleByIDsRequest) String() string {
|
|||||||
func (*ListUserExampleByIDsRequest) ProtoMessage() {}
|
func (*ListUserExampleByIDsRequest) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *ListUserExampleByIDsRequest) ProtoReflect() protoreflect.Message {
|
func (x *ListUserExampleByIDsRequest) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[9]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[9]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@@ -716,7 +716,7 @@ func (x *ListUserExampleByIDsRequest) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use ListUserExampleByIDsRequest.ProtoReflect.Descriptor instead.
|
// Deprecated: Use ListUserExampleByIDsRequest.ProtoReflect.Descriptor instead.
|
||||||
func (*ListUserExampleByIDsRequest) Descriptor() ([]byte, []int) {
|
func (*ListUserExampleByIDsRequest) Descriptor() ([]byte, []int) {
|
||||||
return file_api_userExample_v1_userExample_proto_rawDescGZIP(), []int{9}
|
return file_api_serverNameExample_v1_userExample_proto_rawDescGZIP(), []int{9}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ListUserExampleByIDsRequest) GetIds() []uint64 {
|
func (x *ListUserExampleByIDsRequest) GetIds() []uint64 {
|
||||||
@@ -737,7 +737,7 @@ type ListUserExampleByIDsReply struct {
|
|||||||
func (x *ListUserExampleByIDsReply) Reset() {
|
func (x *ListUserExampleByIDsReply) Reset() {
|
||||||
*x = ListUserExampleByIDsReply{}
|
*x = ListUserExampleByIDsReply{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[10]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[10]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@@ -750,7 +750,7 @@ func (x *ListUserExampleByIDsReply) String() string {
|
|||||||
func (*ListUserExampleByIDsReply) ProtoMessage() {}
|
func (*ListUserExampleByIDsReply) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *ListUserExampleByIDsReply) ProtoReflect() protoreflect.Message {
|
func (x *ListUserExampleByIDsReply) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[10]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[10]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@@ -763,7 +763,7 @@ func (x *ListUserExampleByIDsReply) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use ListUserExampleByIDsReply.ProtoReflect.Descriptor instead.
|
// Deprecated: Use ListUserExampleByIDsReply.ProtoReflect.Descriptor instead.
|
||||||
func (*ListUserExampleByIDsReply) Descriptor() ([]byte, []int) {
|
func (*ListUserExampleByIDsReply) Descriptor() ([]byte, []int) {
|
||||||
return file_api_userExample_v1_userExample_proto_rawDescGZIP(), []int{10}
|
return file_api_serverNameExample_v1_userExample_proto_rawDescGZIP(), []int{10}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ListUserExampleByIDsReply) GetUserExamples() []*UserExample {
|
func (x *ListUserExampleByIDsReply) GetUserExamples() []*UserExample {
|
||||||
@@ -784,7 +784,7 @@ type ListUserExampleRequest struct {
|
|||||||
func (x *ListUserExampleRequest) Reset() {
|
func (x *ListUserExampleRequest) Reset() {
|
||||||
*x = ListUserExampleRequest{}
|
*x = ListUserExampleRequest{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[11]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[11]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@@ -797,7 +797,7 @@ func (x *ListUserExampleRequest) String() string {
|
|||||||
func (*ListUserExampleRequest) ProtoMessage() {}
|
func (*ListUserExampleRequest) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *ListUserExampleRequest) ProtoReflect() protoreflect.Message {
|
func (x *ListUserExampleRequest) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[11]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[11]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@@ -810,7 +810,7 @@ func (x *ListUserExampleRequest) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use ListUserExampleRequest.ProtoReflect.Descriptor instead.
|
// Deprecated: Use ListUserExampleRequest.ProtoReflect.Descriptor instead.
|
||||||
func (*ListUserExampleRequest) Descriptor() ([]byte, []int) {
|
func (*ListUserExampleRequest) Descriptor() ([]byte, []int) {
|
||||||
return file_api_userExample_v1_userExample_proto_rawDescGZIP(), []int{11}
|
return file_api_serverNameExample_v1_userExample_proto_rawDescGZIP(), []int{11}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ListUserExampleRequest) GetParams() *types.Params {
|
func (x *ListUserExampleRequest) GetParams() *types.Params {
|
||||||
@@ -832,7 +832,7 @@ type ListUserExampleReply struct {
|
|||||||
func (x *ListUserExampleReply) Reset() {
|
func (x *ListUserExampleReply) Reset() {
|
||||||
*x = ListUserExampleReply{}
|
*x = ListUserExampleReply{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[12]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[12]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
@@ -845,7 +845,7 @@ func (x *ListUserExampleReply) String() string {
|
|||||||
func (*ListUserExampleReply) ProtoMessage() {}
|
func (*ListUserExampleReply) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *ListUserExampleReply) ProtoReflect() protoreflect.Message {
|
func (x *ListUserExampleReply) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_api_userExample_v1_userExample_proto_msgTypes[12]
|
mi := &file_api_serverNameExample_v1_userExample_proto_msgTypes[12]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
@@ -858,7 +858,7 @@ func (x *ListUserExampleReply) ProtoReflect() protoreflect.Message {
|
|||||||
|
|
||||||
// Deprecated: Use ListUserExampleReply.ProtoReflect.Descriptor instead.
|
// Deprecated: Use ListUserExampleReply.ProtoReflect.Descriptor instead.
|
||||||
func (*ListUserExampleReply) Descriptor() ([]byte, []int) {
|
func (*ListUserExampleReply) Descriptor() ([]byte, []int) {
|
||||||
return file_api_userExample_v1_userExample_proto_rawDescGZIP(), []int{12}
|
return file_api_serverNameExample_v1_userExample_proto_rawDescGZIP(), []int{12}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ListUserExampleReply) GetTotal() int64 {
|
func (x *ListUserExampleReply) GetTotal() int64 {
|
||||||
@@ -875,179 +875,180 @@ func (x *ListUserExampleReply) GetUserExamples() []*UserExample {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var File_api_userExample_v1_userExample_proto protoreflect.FileDescriptor
|
var File_api_serverNameExample_v1_userExample_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
var file_api_userExample_v1_userExample_proto_rawDesc = []byte{
|
var file_api_serverNameExample_v1_userExample_proto_rawDesc = []byte{
|
||||||
0x0a, 0x24, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c,
|
0x0a, 0x2a, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65,
|
||||||
0x65, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,
|
0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x45,
|
||||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72,
|
0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x61, 0x70,
|
||||||
0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69,
|
0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31,
|
||||||
0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72,
|
0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64,
|
||||||
0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74,
|
0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x61, 0x70, 0x69, 0x2f, 0x74,
|
||||||
0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xac, 0x02, 0x0a, 0x18, 0x43,
|
0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,
|
0x22, 0xac, 0x02, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45,
|
||||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
|
0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a,
|
||||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x02, 0x52, 0x04,
|
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04,
|
||||||
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20,
|
0x72, 0x02, 0x10, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d,
|
||||||
0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d,
|
0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02,
|
||||||
0x61, 0x69, 0x6c, 0x12, 0x23, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18,
|
0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x23, 0x0a, 0x08, 0x70, 0x61, 0x73,
|
||||||
0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x0a, 0x52, 0x08,
|
0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04,
|
||||||
0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e,
|
0x72, 0x02, 0x10, 0x0a, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x2e,
|
||||||
0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xfa, 0x42, 0x15, 0x72, 0x13, 0x32, 0x11,
|
0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xfa,
|
||||||
0x5e, 0x31, 0x5b, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x5d, 0x5c, 0x64, 0x7b, 0x39, 0x7d,
|
0x42, 0x15, 0x72, 0x13, 0x32, 0x11, 0x5e, 0x31, 0x5b, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
|
||||||
0x24, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x20, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74,
|
0x5d, 0x5c, 0x64, 0x7b, 0x39, 0x7d, 0x24, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x20,
|
||||||
0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88,
|
0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08,
|
||||||
0x01, 0x01, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x1b, 0x0a, 0x03, 0x61, 0x67,
|
0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72,
|
||||||
0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x1a, 0x04, 0x18, 0x78,
|
0x12, 0x1b, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x42, 0x09, 0xfa,
|
||||||
0x28, 0x00, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65,
|
0x42, 0x06, 0x1a, 0x04, 0x18, 0x78, 0x28, 0x00, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a,
|
||||||
0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73,
|
0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e,
|
||||||
0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e,
|
0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e,
|
||||||
0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10,
|
0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x08, 0xfa,
|
||||||
0x01, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x31, 0x0a, 0x16, 0x43, 0x72, 0x65,
|
0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22,
|
||||||
0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65,
|
0x31, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61,
|
||||||
0x70, 0x6c, 0x79, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42,
|
0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18,
|
||||||
0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x28, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x37, 0x0a, 0x1c,
|
0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x28, 0x01, 0x52, 0x02,
|
||||||
0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c,
|
0x69, 0x64, 0x22, 0x37, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72,
|
||||||
0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x02,
|
|
||||||
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x28,
|
|
||||||
0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55,
|
|
||||||
0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65,
|
|
||||||
0x70, 0x6c, 0x79, 0x22, 0xa8, 0x02, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73,
|
|
||||||
0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71,
|
|
||||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04,
|
|
||||||
0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x28, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a,
|
|
||||||
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
|
|
||||||
0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
|
|
||||||
0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77,
|
|
||||||
0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77,
|
|
||||||
0x6f, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01,
|
|
||||||
0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61,
|
|
||||||
0x74, 0x61, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61,
|
|
||||||
0x72, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03,
|
|
||||||
0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20,
|
|
||||||
0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78,
|
|
||||||
0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54,
|
|
||||||
0x79, 0x70, 0x65, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73,
|
|
||||||
0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61,
|
|
||||||
0x74, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x18,
|
|
||||||
0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x74, 0x22, 0x1c,
|
|
||||||
0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d,
|
|
||||||
0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0xb0, 0x02, 0x0a,
|
|
||||||
0x0b, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02,
|
|
||||||
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04,
|
|
||||||
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
|
|
||||||
0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
|
|
||||||
0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18,
|
|
||||||
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06,
|
|
||||||
0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76,
|
|
||||||
0x61, 0x74, 0x61, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
|
|
||||||
0x05, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72,
|
|
||||||
0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65,
|
|
||||||
0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x64,
|
|
||||||
0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16,
|
|
||||||
0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
|
|
||||||
0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f,
|
|
||||||
0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x41,
|
|
||||||
0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18,
|
|
||||||
0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
|
|
||||||
0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b,
|
|
||||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22,
|
|
||||||
0x34, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c,
|
|
||||||
0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x02,
|
|
||||||
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x28,
|
|
||||||
0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x5c, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
|
|
||||||
0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x70, 0x6c, 0x79,
|
|
||||||
0x12, 0x41, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18,
|
|
||||||
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72,
|
|
||||||
0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45,
|
|
||||||
0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d,
|
|
||||||
0x70, 0x6c, 0x65, 0x22, 0x2f, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45,
|
|
||||||
0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
|
|
||||||
0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52,
|
|
||||||
0x03, 0x69, 0x64, 0x73, 0x22, 0x60, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72,
|
|
||||||
0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x70, 0x6c,
|
|
||||||
0x79, 0x12, 0x43, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,
|
|
||||||
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73,
|
|
||||||
0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65,
|
|
||||||
0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78,
|
|
||||||
0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x22, 0x49, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73,
|
|
||||||
0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
|
||||||
0x12, 0x2f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
|
|
||||||
0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42,
|
|
||||||
0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d,
|
|
||||||
0x73, 0x22, 0x71, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61,
|
|
||||||
0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74,
|
|
||||||
0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12,
|
|
||||||
0x43, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18,
|
|
||||||
0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72,
|
|
||||||
0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45,
|
|
||||||
0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d,
|
|
||||||
0x70, 0x6c, 0x65, 0x73, 0x2a, 0x2f, 0x0a, 0x0a, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x79,
|
|
||||||
0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12,
|
|
||||||
0x08, 0x0a, 0x04, 0x4d, 0x41, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x45, 0x4d,
|
|
||||||
0x41, 0x4c, 0x45, 0x10, 0x02, 0x32, 0x96, 0x05, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78,
|
|
||||||
0x61, 0x6d, 0x70, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x64, 0x0a, 0x06,
|
|
||||||
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65,
|
|
||||||
0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61,
|
|
||||||
0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x71,
|
|
||||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45,
|
|
||||||
0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
|
|
||||||
0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79,
|
|
||||||
0x22, 0x00, 0x12, 0x70, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x79, 0x49, 0x44,
|
|
||||||
0x12, 0x30, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70,
|
|
||||||
0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72,
|
|
||||||
0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65,
|
0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||||
0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61,
|
0x73, 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07,
|
||||||
0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73,
|
0xfa, 0x42, 0x04, 0x32, 0x02, 0x28, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x44,
|
||||||
|
0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,
|
||||||
|
0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0xa8, 0x02, 0x0a, 0x1c, 0x55, 0x70,
|
||||||
|
0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42,
|
||||||
|
0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64,
|
||||||
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x28, 0x01, 0x52,
|
||||||
|
0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||||
|
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c,
|
||||||
|
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a,
|
||||||
|
0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
|
0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f,
|
||||||
|
0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12,
|
||||||
|
0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
|
0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x07,
|
||||||
|
0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x67, 0x65, 0x6e,
|
||||||
|
0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||||
|
0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47,
|
||||||
|
0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65,
|
||||||
|
0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28,
|
||||||
|
0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67,
|
||||||
|
0x69, 0x6e, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6c, 0x6f, 0x67,
|
||||||
|
0x69, 0x6e, 0x41, 0x74, 0x22, 0x1c, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73,
|
||||||
0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x70,
|
0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x70,
|
||||||
0x6c, 0x79, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x79,
|
0x6c, 0x79, 0x22, 0xb0, 0x02, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70,
|
||||||
0x49, 0x44, 0x12, 0x30, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61,
|
0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02,
|
||||||
0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73,
|
0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
||||||
0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71,
|
0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18,
|
||||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45,
|
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05,
|
||||||
0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
|
0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f,
|
||||||
|
0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01,
|
||||||
|
0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67,
|
||||||
|
0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x06,
|
||||||
|
0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x61,
|
||||||
|
0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76,
|
||||||
|
0x31, 0x2e, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x67, 0x65,
|
||||||
|
0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08,
|
||||||
|
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x08,
|
||||||
|
0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07,
|
||||||
|
0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
|
||||||
|
0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65,
|
||||||
|
0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
|
||||||
|
0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61,
|
||||||
|
0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x34, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
|
||||||
|
0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||||
|
0x73, 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07,
|
||||||
|
0xfa, 0x42, 0x04, 0x32, 0x02, 0x28, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x5c, 0x0a, 0x17, 0x47,
|
||||||
|
0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49,
|
||||||
|
0x44, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x41, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78,
|
||||||
|
0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70,
|
||||||
|
0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31,
|
||||||
|
0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x0b, 0x75, 0x73,
|
||||||
|
0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x22, 0x2f, 0x0a, 0x1b, 0x4c, 0x69, 0x73,
|
||||||
|
0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44,
|
||||||
|
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18,
|
||||||
|
0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x60, 0x0a, 0x19, 0x4c, 0x69,
|
||||||
|
0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49,
|
||||||
|
0x44, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x43, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x45,
|
||||||
|
0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
|
||||||
|
0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e,
|
||||||
|
0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x0c,
|
||||||
|
0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x22, 0x49, 0x0a, 0x16,
|
||||||
|
0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52,
|
||||||
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73,
|
||||||
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50,
|
||||||
|
0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52,
|
||||||
|
0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x71, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x55,
|
||||||
|
0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12,
|
||||||
|
0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
|
||||||
|
0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x43, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61,
|
||||||
|
0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70,
|
||||||
|
0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31,
|
||||||
|
0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x0c, 0x75, 0x73,
|
||||||
|
0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x2a, 0x2f, 0x0a, 0x0a, 0x47, 0x65,
|
||||||
|
0x6e, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e,
|
||||||
|
0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x41, 0x4c, 0x45, 0x10, 0x01, 0x12,
|
||||||
|
0x0a, 0x0a, 0x06, 0x46, 0x45, 0x4d, 0x41, 0x4c, 0x45, 0x10, 0x02, 0x32, 0x96, 0x05, 0x0a, 0x12,
|
||||||
|
0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69,
|
||||||
|
0x63, 0x65, 0x12, 0x64, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x2e, 0x61,
|
||||||
|
0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76,
|
||||||
|
0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d,
|
||||||
|
0x70, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x61, 0x70, 0x69,
|
||||||
|
0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e,
|
||||||
|
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c,
|
||||||
|
0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65,
|
||||||
|
0x74, 0x65, 0x42, 0x79, 0x49, 0x44, 0x12, 0x30, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65,
|
||||||
|
0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65,
|
||||||
|
0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49,
|
||||||
|
0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75,
|
||||||
|
0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65,
|
||||||
|
0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42,
|
||||||
|
0x79, 0x49, 0x44, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x0a, 0x55, 0x70,
|
||||||
|
0x64, 0x61, 0x74, 0x65, 0x42, 0x79, 0x49, 0x44, 0x12, 0x30, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75,
|
||||||
|
0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70,
|
||||||
|
0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42,
|
||||||
|
0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x61, 0x70, 0x69,
|
||||||
|
0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e,
|
||||||
|
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c,
|
||||||
|
0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x07,
|
||||||
|
0x47, 0x65, 0x74, 0x42, 0x79, 0x49, 0x44, 0x12, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73,
|
||||||
|
0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74,
|
||||||
0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52,
|
0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52,
|
||||||
0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x42, 0x79, 0x49,
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65,
|
||||||
0x44, 0x12, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d,
|
0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55,
|
||||||
0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78,
|
0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65,
|
||||||
0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x49,
|
||||||
0x1a, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70,
|
0x44, 0x73, 0x12, 0x2f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61,
|
||||||
0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61,
|
0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72,
|
||||||
0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12,
|
0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75,
|
||||||
0x6d, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x49, 0x44, 0x73, 0x12, 0x2f, 0x2e, 0x61,
|
0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78,
|
||||||
|
0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65,
|
||||||
|
0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x70,
|
||||||
|
0x6c, 0x79, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x2e, 0x61,
|
||||||
0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76,
|
0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76,
|
||||||
0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c,
|
0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c,
|
||||||
0x65, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e,
|
0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75,
|
||||||
0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e,
|
0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69,
|
||||||
0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70,
|
0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x70,
|
||||||
0x6c, 0x65, 0x42, 0x79, 0x49, 0x44, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5e,
|
0x6c, 0x79, 0x22, 0x00, 0x42, 0x37, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
|
||||||
0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65,
|
0x6f, 0x6d, 0x2f, 0x7a, 0x68, 0x75, 0x66, 0x75, 0x79, 0x69, 0x2f, 0x73, 0x70, 0x6f, 0x6e, 0x67,
|
||||||
0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74,
|
0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65,
|
||||||
0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
|
0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x76, 0x31, 0x62, 0x06, 0x70,
|
||||||
0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61,
|
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72,
|
|
||||||
0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x42, 0x31,
|
|
||||||
0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x7a, 0x68, 0x75,
|
|
||||||
0x66, 0x75, 0x79, 0x69, 0x2f, 0x73, 0x70, 0x6f, 0x6e, 0x67, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
|
||||||
0x75, 0x73, 0x65, 0x72, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x76,
|
|
||||||
0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
file_api_userExample_v1_userExample_proto_rawDescOnce sync.Once
|
file_api_serverNameExample_v1_userExample_proto_rawDescOnce sync.Once
|
||||||
file_api_userExample_v1_userExample_proto_rawDescData = file_api_userExample_v1_userExample_proto_rawDesc
|
file_api_serverNameExample_v1_userExample_proto_rawDescData = file_api_serverNameExample_v1_userExample_proto_rawDesc
|
||||||
)
|
)
|
||||||
|
|
||||||
func file_api_userExample_v1_userExample_proto_rawDescGZIP() []byte {
|
func file_api_serverNameExample_v1_userExample_proto_rawDescGZIP() []byte {
|
||||||
file_api_userExample_v1_userExample_proto_rawDescOnce.Do(func() {
|
file_api_serverNameExample_v1_userExample_proto_rawDescOnce.Do(func() {
|
||||||
file_api_userExample_v1_userExample_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_userExample_v1_userExample_proto_rawDescData)
|
file_api_serverNameExample_v1_userExample_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_serverNameExample_v1_userExample_proto_rawDescData)
|
||||||
})
|
})
|
||||||
return file_api_userExample_v1_userExample_proto_rawDescData
|
return file_api_serverNameExample_v1_userExample_proto_rawDescData
|
||||||
}
|
}
|
||||||
|
|
||||||
var file_api_userExample_v1_userExample_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
|
var file_api_serverNameExample_v1_userExample_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
|
||||||
var file_api_userExample_v1_userExample_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
|
var file_api_serverNameExample_v1_userExample_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
|
||||||
var file_api_userExample_v1_userExample_proto_goTypes = []interface{}{
|
var file_api_serverNameExample_v1_userExample_proto_goTypes = []interface{}{
|
||||||
(GenderType)(0), // 0: api.userExample.v1.GenderType
|
(GenderType)(0), // 0: api.userExample.v1.GenderType
|
||||||
(*CreateUserExampleRequest)(nil), // 1: api.userExample.v1.CreateUserExampleRequest
|
(*CreateUserExampleRequest)(nil), // 1: api.userExample.v1.CreateUserExampleRequest
|
||||||
(*CreateUserExampleReply)(nil), // 2: api.userExample.v1.CreateUserExampleReply
|
(*CreateUserExampleReply)(nil), // 2: api.userExample.v1.CreateUserExampleReply
|
||||||
@@ -1064,7 +1065,7 @@ var file_api_userExample_v1_userExample_proto_goTypes = []interface{}{
|
|||||||
(*ListUserExampleReply)(nil), // 13: api.userExample.v1.ListUserExampleReply
|
(*ListUserExampleReply)(nil), // 13: api.userExample.v1.ListUserExampleReply
|
||||||
(*types.Params)(nil), // 14: types.Params
|
(*types.Params)(nil), // 14: types.Params
|
||||||
}
|
}
|
||||||
var file_api_userExample_v1_userExample_proto_depIdxs = []int32{
|
var file_api_serverNameExample_v1_userExample_proto_depIdxs = []int32{
|
||||||
0, // 0: api.userExample.v1.CreateUserExampleRequest.gender:type_name -> api.userExample.v1.GenderType
|
0, // 0: api.userExample.v1.CreateUserExampleRequest.gender:type_name -> api.userExample.v1.GenderType
|
||||||
0, // 1: api.userExample.v1.UpdateUserExampleByIDRequest.gender:type_name -> api.userExample.v1.GenderType
|
0, // 1: api.userExample.v1.UpdateUserExampleByIDRequest.gender:type_name -> api.userExample.v1.GenderType
|
||||||
0, // 2: api.userExample.v1.UserExample.gender:type_name -> api.userExample.v1.GenderType
|
0, // 2: api.userExample.v1.UserExample.gender:type_name -> api.userExample.v1.GenderType
|
||||||
@@ -1091,13 +1092,13 @@ var file_api_userExample_v1_userExample_proto_depIdxs = []int32{
|
|||||||
0, // [0:7] is the sub-list for field type_name
|
0, // [0:7] is the sub-list for field type_name
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { file_api_userExample_v1_userExample_proto_init() }
|
func init() { file_api_serverNameExample_v1_userExample_proto_init() }
|
||||||
func file_api_userExample_v1_userExample_proto_init() {
|
func file_api_serverNameExample_v1_userExample_proto_init() {
|
||||||
if File_api_userExample_v1_userExample_proto != nil {
|
if File_api_serverNameExample_v1_userExample_proto != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if !protoimpl.UnsafeEnabled {
|
if !protoimpl.UnsafeEnabled {
|
||||||
file_api_userExample_v1_userExample_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
file_api_serverNameExample_v1_userExample_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*CreateUserExampleRequest); i {
|
switch v := v.(*CreateUserExampleRequest); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
@@ -1109,7 +1110,7 @@ func file_api_userExample_v1_userExample_proto_init() {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_api_userExample_v1_userExample_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
file_api_serverNameExample_v1_userExample_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*CreateUserExampleReply); i {
|
switch v := v.(*CreateUserExampleReply); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
@@ -1121,7 +1122,7 @@ func file_api_userExample_v1_userExample_proto_init() {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_api_userExample_v1_userExample_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
file_api_serverNameExample_v1_userExample_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*DeleteUserExampleByIDRequest); i {
|
switch v := v.(*DeleteUserExampleByIDRequest); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
@@ -1133,7 +1134,7 @@ func file_api_userExample_v1_userExample_proto_init() {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_api_userExample_v1_userExample_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
|
file_api_serverNameExample_v1_userExample_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*DeleteUserExampleByIDReply); i {
|
switch v := v.(*DeleteUserExampleByIDReply); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
@@ -1145,7 +1146,7 @@ func file_api_userExample_v1_userExample_proto_init() {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_api_userExample_v1_userExample_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
|
file_api_serverNameExample_v1_userExample_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*UpdateUserExampleByIDRequest); i {
|
switch v := v.(*UpdateUserExampleByIDRequest); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
@@ -1157,7 +1158,7 @@ func file_api_userExample_v1_userExample_proto_init() {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_api_userExample_v1_userExample_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
|
file_api_serverNameExample_v1_userExample_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*UpdateUserExampleByIDReply); i {
|
switch v := v.(*UpdateUserExampleByIDReply); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
@@ -1169,7 +1170,7 @@ func file_api_userExample_v1_userExample_proto_init() {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_api_userExample_v1_userExample_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
|
file_api_serverNameExample_v1_userExample_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*UserExample); i {
|
switch v := v.(*UserExample); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
@@ -1181,7 +1182,7 @@ func file_api_userExample_v1_userExample_proto_init() {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_api_userExample_v1_userExample_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
|
file_api_serverNameExample_v1_userExample_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*GetUserExampleByIDRequest); i {
|
switch v := v.(*GetUserExampleByIDRequest); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
@@ -1193,7 +1194,7 @@ func file_api_userExample_v1_userExample_proto_init() {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_api_userExample_v1_userExample_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
|
file_api_serverNameExample_v1_userExample_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*GetUserExampleByIDReply); i {
|
switch v := v.(*GetUserExampleByIDReply); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
@@ -1205,7 +1206,7 @@ func file_api_userExample_v1_userExample_proto_init() {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_api_userExample_v1_userExample_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
|
file_api_serverNameExample_v1_userExample_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*ListUserExampleByIDsRequest); i {
|
switch v := v.(*ListUserExampleByIDsRequest); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
@@ -1217,7 +1218,7 @@ func file_api_userExample_v1_userExample_proto_init() {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_api_userExample_v1_userExample_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
|
file_api_serverNameExample_v1_userExample_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*ListUserExampleByIDsReply); i {
|
switch v := v.(*ListUserExampleByIDsReply); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
@@ -1229,7 +1230,7 @@ func file_api_userExample_v1_userExample_proto_init() {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_api_userExample_v1_userExample_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
|
file_api_serverNameExample_v1_userExample_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*ListUserExampleRequest); i {
|
switch v := v.(*ListUserExampleRequest); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
@@ -1241,7 +1242,7 @@ func file_api_userExample_v1_userExample_proto_init() {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_api_userExample_v1_userExample_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
|
file_api_serverNameExample_v1_userExample_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*ListUserExampleReply); i {
|
switch v := v.(*ListUserExampleReply); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
@@ -1258,19 +1259,19 @@ func file_api_userExample_v1_userExample_proto_init() {
|
|||||||
out := protoimpl.TypeBuilder{
|
out := protoimpl.TypeBuilder{
|
||||||
File: protoimpl.DescBuilder{
|
File: protoimpl.DescBuilder{
|
||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: file_api_userExample_v1_userExample_proto_rawDesc,
|
RawDescriptor: file_api_serverNameExample_v1_userExample_proto_rawDesc,
|
||||||
NumEnums: 1,
|
NumEnums: 1,
|
||||||
NumMessages: 13,
|
NumMessages: 13,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
NumServices: 1,
|
NumServices: 1,
|
||||||
},
|
},
|
||||||
GoTypes: file_api_userExample_v1_userExample_proto_goTypes,
|
GoTypes: file_api_serverNameExample_v1_userExample_proto_goTypes,
|
||||||
DependencyIndexes: file_api_userExample_v1_userExample_proto_depIdxs,
|
DependencyIndexes: file_api_serverNameExample_v1_userExample_proto_depIdxs,
|
||||||
EnumInfos: file_api_userExample_v1_userExample_proto_enumTypes,
|
EnumInfos: file_api_serverNameExample_v1_userExample_proto_enumTypes,
|
||||||
MessageInfos: file_api_userExample_v1_userExample_proto_msgTypes,
|
MessageInfos: file_api_serverNameExample_v1_userExample_proto_msgTypes,
|
||||||
}.Build()
|
}.Build()
|
||||||
File_api_userExample_v1_userExample_proto = out.File
|
File_api_serverNameExample_v1_userExample_proto = out.File
|
||||||
file_api_userExample_v1_userExample_proto_rawDesc = nil
|
file_api_serverNameExample_v1_userExample_proto_rawDesc = nil
|
||||||
file_api_userExample_v1_userExample_proto_goTypes = nil
|
file_api_serverNameExample_v1_userExample_proto_goTypes = nil
|
||||||
file_api_userExample_v1_userExample_proto_depIdxs = nil
|
file_api_serverNameExample_v1_userExample_proto_depIdxs = nil
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
// Code generated by protoc-gen-validate. DO NOT EDIT.
|
// Code generated by protoc-gen-validate. DO NOT EDIT.
|
||||||
// source: api/userExample/v1/userExample.proto
|
// source: api/serverNameExample/v1/userExample.proto
|
||||||
|
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
|
@@ -8,7 +8,7 @@ package api.userExample.v1;
|
|||||||
import "validate/validate.proto";
|
import "validate/validate.proto";
|
||||||
import "api/types/types.proto";
|
import "api/types/types.proto";
|
||||||
|
|
||||||
option go_package = "github.com/zhufuyi/sponge/api/userExample/v1;v1";
|
option go_package = "github.com/zhufuyi/sponge/api/serverNameExample/v1;v1";
|
||||||
|
|
||||||
service userExampleService {
|
service userExampleService {
|
||||||
rpc Create(CreateUserExampleRequest) returns (CreateUserExampleReply) {}
|
rpc Create(CreateUserExampleRequest) returns (CreateUserExampleReply) {}
|
||||||
@@ -52,7 +52,7 @@ message UpdateUserExampleByIDRequest {
|
|||||||
string name = 2; // 名称
|
string name = 2; // 名称
|
||||||
string email = 3; // 邮件
|
string email = 3; // 邮件
|
||||||
string password = 4; // 密码
|
string password = 4; // 密码
|
||||||
string phone=5; // 手机号码,必须在前加'+86'
|
string phone=5; // 手机号码
|
||||||
string avatar=6; // 头像
|
string avatar=6; // 头像
|
||||||
int32 age=7; // 年龄
|
int32 age=7; // 年龄
|
||||||
GenderType gender=8; // 性别,1:男,2:女
|
GenderType gender=8; // 性别,1:男,2:女
|
||||||
@@ -68,7 +68,7 @@ message UserExample {
|
|||||||
uint64 id = 1;
|
uint64 id = 1;
|
||||||
string name = 2; // 名称
|
string name = 2; // 名称
|
||||||
string email = 3; // 邮件
|
string email = 3; // 邮件
|
||||||
string phone=4; // 手机号码,必须在前加'+86'
|
string phone=4; // 手机号码
|
||||||
string avatar=5; // 头像
|
string avatar=5; // 头像
|
||||||
int32 age=6; // 年龄
|
int32 age=6; // 年龄
|
||||||
GenderType gender=7; // 性别,1:男,2:女
|
GenderType gender=7; // 性别,1:男,2:女
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.2.0
|
// - protoc-gen-go-grpc v1.2.0
|
||||||
// - protoc v3.20.1
|
// - protoc v3.20.1
|
||||||
// source: api/userExample/v1/userExample.proto
|
// source: api/serverNameExample/v1/userExample.proto
|
||||||
|
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
@@ -281,5 +281,5 @@ var UserExampleService_ServiceDesc = grpc.ServiceDesc{
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
Streams: []grpc.StreamDesc{},
|
Streams: []grpc.StreamDesc{},
|
||||||
Metadata: "api/userExample/v1/userExample.proto",
|
Metadata: "api/serverNameExample/v1/userExample.proto",
|
||||||
}
|
}
|
||||||
|
@@ -1,12 +1,12 @@
|
|||||||
# 需要先打包代码`tar zcf sponge.tar.gz $(ls)`,并移动到和Dokerfile在同一个目录下
|
# 需要先打包代码`tar zcf serverNameExample.tar.gz $(ls)`,并移动到和Dokerfile在同一个目录下
|
||||||
# 编译go代码
|
# 编译go代码
|
||||||
FROM golang:1.18-alpine as build
|
FROM golang:1.18-alpine as build
|
||||||
COPY . /go/src/sponge
|
COPY . /go/src/serverNameExample
|
||||||
WORKDIR /go/src/sponge
|
WORKDIR /go/src/serverNameExample
|
||||||
RUN tar zxf sponge.tar.gz
|
RUN tar zxf serverNameExample.tar.gz
|
||||||
RUN go env -w GOPROXY=https://goproxy.cn,direct
|
RUN go env -w GOPROXY=https://goproxy.cn,direct
|
||||||
RUN go mod download
|
RUN go mod download
|
||||||
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -gcflags "all=-N -l" -o /sponge cmd/sponge/main.go
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -gcflags "all=-N -l" -o /serverNameExample cmd/serverNameExample/main.go
|
||||||
|
|
||||||
# 构建grpc_health_probe
|
# 构建grpc_health_probe
|
||||||
RUN go install github.com/grpc-ecosystem/grpc-health-probe@v0.4.12
|
RUN go install github.com/grpc-ecosystem/grpc-health-probe@v0.4.12
|
||||||
@@ -30,9 +30,10 @@ RUN apk add curl
|
|||||||
# 添加grpc_health_probe,用在grpc服务的健康检查
|
# 添加grpc_health_probe,用在grpc服务的健康检查
|
||||||
COPY --from=build /grpc_health_probe /bin/grpc_health_probe
|
COPY --from=build /grpc_health_probe /bin/grpc_health_probe
|
||||||
|
|
||||||
COPY --from=build /sponge /app/sponge
|
COPY --from=build /serverNameExample /app/serverNameExample
|
||||||
COPY --from=build /go/src/sponge/config/conf.yml /app/config/conf.yml
|
COPY --from=build /go/src/serverNameExample/configs/serverNameExample.yml /app/configs/serverNameExample.yml
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
CMD ["./sponge", "-c", "config/conf.yml"]
|
CMD ["./serverNameExample", "-c", "configs/serverNameExample.yml"]
|
||||||
|
# 使用配置中心,serverNameExample.yml是配置中心的配置。
|
||||||
|
#CMD ["./serverNameExample", "-c", "configs/serverNameExample.yml", "-enable-cc"]
|
||||||
|
@@ -3,17 +3,20 @@ package main
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"flag"
|
"flag"
|
||||||
|
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/zhufuyi/sponge/config"
|
"github.com/zhufuyi/sponge/configs"
|
||||||
|
"github.com/zhufuyi/sponge/internal/config"
|
||||||
"github.com/zhufuyi/sponge/internal/model"
|
"github.com/zhufuyi/sponge/internal/model"
|
||||||
"github.com/zhufuyi/sponge/internal/server"
|
"github.com/zhufuyi/sponge/internal/server"
|
||||||
"github.com/zhufuyi/sponge/pkg/app"
|
"github.com/zhufuyi/sponge/pkg/app"
|
||||||
"github.com/zhufuyi/sponge/pkg/logger"
|
"github.com/zhufuyi/sponge/pkg/logger"
|
||||||
|
"github.com/zhufuyi/sponge/pkg/nacoscli"
|
||||||
"github.com/zhufuyi/sponge/pkg/tracer"
|
"github.com/zhufuyi/sponge/pkg/tracer"
|
||||||
|
|
||||||
|
"github.com/jinzhu/copier"
|
||||||
|
|
||||||
// grpc import start
|
// grpc import start
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
@@ -29,9 +32,10 @@ import (
|
|||||||
var (
|
var (
|
||||||
version string
|
version string
|
||||||
configFile string
|
configFile string
|
||||||
|
enableConfigCenter bool
|
||||||
)
|
)
|
||||||
|
|
||||||
// @title sponge api docs
|
// @title serverNameExample api docs
|
||||||
// @description http server api docs
|
// @description http server api docs
|
||||||
// @schemes http https
|
// @schemes http https
|
||||||
// @version v0.0.0
|
// @version v0.0.0
|
||||||
@@ -49,23 +53,49 @@ func main() {
|
|||||||
func registerInits() []app.Init {
|
func registerInits() []app.Init {
|
||||||
// 初始化配置文件,必须优先执行,后面的初始化需要依赖配置
|
// 初始化配置文件,必须优先执行,后面的初始化需要依赖配置
|
||||||
func() {
|
func() {
|
||||||
flag.StringVar(&configFile, "c", "", "配置文件")
|
flag.StringVar(&version, "version", "", "service Version Number")
|
||||||
flag.StringVar(&version, "version", "", "服务版本号")
|
flag.BoolVar(&enableConfigCenter, "enable-cc", false, "whether to get from the configuration center, "+
|
||||||
|
"if true, the '-c' parameter indicates the configuration center")
|
||||||
|
flag.StringVar(&configFile, "c", "", "configuration file")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
|
if enableConfigCenter {
|
||||||
|
// 从配置中心获取配置(先获取nacos配置,再根据nacos配置中心读取服务配置)
|
||||||
if configFile == "" {
|
if configFile == "" {
|
||||||
configFile = config.Path("conf.yml") // 默认配置文件config/conf.yml
|
configFile = configs.Path("serverNameExample_cc.yml")
|
||||||
|
}
|
||||||
|
nacosConfig, err := config.NewCenter(configFile)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
appConfig := &config.Config{}
|
||||||
|
params := &nacoscli.Params{}
|
||||||
|
_ = copier.Copy(params, &nacosConfig.Nacos)
|
||||||
|
err = nacoscli.Init(appConfig, params)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
if appConfig.App.Name == "" {
|
||||||
|
panic("read the config from center error, config data is empty")
|
||||||
|
}
|
||||||
|
config.Set(appConfig)
|
||||||
|
} else {
|
||||||
|
// 从本地配置文件获取配置
|
||||||
|
if configFile == "" {
|
||||||
|
configFile = configs.Path("serverNameExample.yml")
|
||||||
}
|
}
|
||||||
err := config.Init(configFile)
|
err := config.Init(configFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic("init config error: " + err.Error())
|
panic("init config error: " + err.Error())
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if version != "" {
|
if version != "" {
|
||||||
config.Get().App.Version = version
|
config.Get().App.Version = version
|
||||||
}
|
}
|
||||||
//config.Show()
|
//fmt.Println(config.Show())
|
||||||
}()
|
}()
|
||||||
|
|
||||||
// 执行初始化日志
|
// 初始化日志
|
||||||
func() {
|
func() {
|
||||||
_, err := logger.Init(
|
_, err := logger.Init(
|
||||||
logger.WithLevel(config.Get().Logger.Level),
|
logger.WithLevel(config.Get().Logger.Level),
|
16
deployments/docker-compose/README.md
Normal file
16
deployments/docker-compose/README.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
```bash
|
||||||
|
# todo 复制服务配置文件到configs目录下。
|
||||||
|
cd deployments/docker-compose
|
||||||
|
mkdir configs
|
||||||
|
cp ../../configs/serverNameExample.yml configs/
|
||||||
|
|
||||||
|
tree
|
||||||
|
# ├── configs
|
||||||
|
# │ └── serverNameExample.yml
|
||||||
|
# └── docker-compose.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
启动服务:
|
||||||
|
|
||||||
|
> docker-compose up
|
||||||
|
|
@@ -6,15 +6,17 @@ services:
|
|||||||
container_name: server-name-example
|
container_name: server-name-example
|
||||||
restart: always
|
restart: always
|
||||||
command: ["./serverNameExample", "-c", "/app/configs/serverNameExample.yml"]
|
command: ["./serverNameExample", "-c", "/app/configs/serverNameExample.yml"]
|
||||||
|
# todo 根据服务类型(http或grpc)选择端口
|
||||||
ports:
|
ports:
|
||||||
- "28080:8080" # http端口
|
- "8080:8080" # http端口
|
||||||
- "29090:9090" # grpc服务端口
|
- "8282:8282" # grpc服务端口
|
||||||
- "29082:9082" # grpc metrics端口
|
- "9082:9082" # grpc metrics端口
|
||||||
volumes:
|
volumes:
|
||||||
- $PWD/configs:/app/configs
|
- $PWD/configs:/app/configs
|
||||||
|
# todo 根据服务类型(http或grpc)选择健康检查
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "-f", "http://localhost:8080/health"] # http健康检查,注:镜像必须包含curl命令
|
test: ["CMD", "curl", "-f", "http://localhost:8080/health"] # http健康检查,注:镜像必须包含curl命令
|
||||||
#test: ["CMD", "grpc_health_probe", "-addr=localhost:9090"] # grpc健康检查,注:镜像必须包含grpc_health_probe命令
|
#test: ["CMD", "grpc_health_probe", "-addr=localhost:8282"] # grpc健康检查,注:镜像必须包含grpc_health_probe命令
|
||||||
interval: 10s # 间隔时间
|
interval: 10s # 间隔时间
|
||||||
timeout: 5s # 超时时间
|
timeout: 5s # 超时时间
|
||||||
retries: 3 # 重试次数
|
retries: 3 # 重试次数
|
||||||
|
17
deployments/kubernetes/README.md
Normal file
17
deployments/kubernetes/README.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
启动服务:
|
||||||
|
|
||||||
|
> kubectl apply -f ./
|
||||||
|
|
||||||
|
查看启动状态:
|
||||||
|
|
||||||
|
> kubectl get all -n project-name-example
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
简单测试http端口
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 在本机端口映射到服务的http端口
|
||||||
|
kubectl port-forward --address=0.0.0.0 service/server-name-example-svc 8080:8080 -n project-name-example
|
||||||
|
```
|
@@ -27,7 +27,7 @@ data:
|
|||||||
|
|
||||||
# grpc 服务设置
|
# grpc 服务设置
|
||||||
grpc:
|
grpc:
|
||||||
port: 9090 # 监听端口
|
port: 8282 # 监听端口
|
||||||
readTimeout: 3 # 读超时,单位(秒)
|
readTimeout: 3 # 读超时,单位(秒)
|
||||||
writeTimeout: 3 # 写超时,单位(秒)
|
writeTimeout: 3 # 写超时,单位(秒)
|
||||||
|
|
||||||
|
@@ -20,11 +20,12 @@ spec:
|
|||||||
# If using a local image, use Never, default is Always
|
# If using a local image, use Never, default is Always
|
||||||
#imagePullPolicy: Never
|
#imagePullPolicy: Never
|
||||||
command: ["./serverNameExample", "-c", "/app/configs/serverNameExample.yml"]
|
command: ["./serverNameExample", "-c", "/app/configs/serverNameExample.yml"]
|
||||||
|
# todo 根据服务类型(http或grpc)选择端口
|
||||||
ports:
|
ports:
|
||||||
- name: http-port
|
- name: http-port
|
||||||
containerPort: 8080
|
containerPort: 8080
|
||||||
- name: grpc-port
|
- name: grpc-port
|
||||||
containerPort: 9090
|
containerPort: 8282
|
||||||
- name: metrics-port
|
- name: metrics-port
|
||||||
containerPort: 9082
|
containerPort: 9082
|
||||||
resources:
|
resources:
|
||||||
@@ -38,26 +39,26 @@ spec:
|
|||||||
- name: server-name-example-vl
|
- name: server-name-example-vl
|
||||||
mountPath: /app/configs/
|
mountPath: /app/configs/
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
# todo 根据服务类型(http或grpc)选择健康检查
|
||||||
# 就绪探测
|
# 就绪探测
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
#httpGet:
|
httpGet:
|
||||||
#port: http-port
|
port: http-port
|
||||||
#path: /health
|
path: /health
|
||||||
exec:
|
#exec:
|
||||||
command: ["/bin/grpc_health_probe", "-addr=:9090"]
|
# command: ["/bin/grpc_health_probe", "-addr=:8282"]
|
||||||
initialDelaySeconds: 10
|
initialDelaySeconds: 10
|
||||||
timeoutSeconds: 2
|
timeoutSeconds: 2
|
||||||
periodSeconds: 10
|
periodSeconds: 10
|
||||||
successThreshold: 1
|
successThreshold: 1
|
||||||
failureThreshold: 3
|
failureThreshold: 3
|
||||||
|
|
||||||
# 容器存活探测
|
# 容器存活探测
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
#httpGet:
|
httpGet:
|
||||||
#port: http-port
|
port: http-port
|
||||||
#path: /health
|
path: /health
|
||||||
exec:
|
#exec:
|
||||||
command: ["/bin/grpc_health_probe", "-addr=:9090"]
|
# command: ["/bin/grpc_health_probe", "-addr=:8282"]
|
||||||
initialDelaySeconds: 10
|
initialDelaySeconds: 10
|
||||||
timeoutSeconds: 2
|
timeoutSeconds: 2
|
||||||
periodSeconds: 10
|
periodSeconds: 10
|
||||||
|
@@ -7,13 +7,14 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
app: server-name-example
|
app: server-name-example
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
# todo 根据服务类型(http或grpc)选择服务端口
|
||||||
ports:
|
ports:
|
||||||
- name: server-name-example-svc-http-port
|
- name: server-name-example-svc-http-port
|
||||||
port: 8080
|
port: 8080
|
||||||
targetPort: 8080
|
targetPort: 8080
|
||||||
- name: server-name-example-svc-grpc-port
|
- name: server-name-example-svc-grpc-port
|
||||||
port: 9090
|
port: 8282
|
||||||
targetPort: 9090
|
targetPort: 8282
|
||||||
- name: server-name-example-svc-grpc-metrics-port
|
- name: server-name-example-svc-grpc-metrics-port
|
||||||
port: 9082
|
port: 9082
|
||||||
targetPort: 9082
|
targetPort: 9082
|
||||||
|
2
doc.go
2
doc.go
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
sponge 是一个微服务框架,支持http和grpc及服务治理.
|
sponge is a microservices framework that supports http and grpc and service governance.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package sponge
|
package sponge
|
||||||
|
@@ -312,7 +312,7 @@ const docTemplate = `{
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"phone": {
|
"phone": {
|
||||||
"description": "手机号码,必须在前加'+86'",
|
"description": "手机号码",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -402,7 +402,7 @@ const docTemplate = `{
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"phone": {
|
"phone": {
|
||||||
"description": "手机号码,必须在前加'+86'",
|
"description": "手机号码",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -427,7 +427,7 @@ var SwaggerInfo = &swag.Spec{
|
|||||||
Host: "localhost:8080",
|
Host: "localhost:8080",
|
||||||
BasePath: "",
|
BasePath: "",
|
||||||
Schemes: []string{"http", "https"},
|
Schemes: []string{"http", "https"},
|
||||||
Title: "sponge api docs",
|
Title: "serverNameExample api docs",
|
||||||
Description: "http server api docs",
|
Description: "http server api docs",
|
||||||
InfoInstanceName: "swagger",
|
InfoInstanceName: "swagger",
|
||||||
SwaggerTemplate: docTemplate,
|
SwaggerTemplate: docTemplate,
|
||||||
|
315
docs/proto.html
315
docs/proto.html
@@ -175,26 +175,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="#api%2ftypes%2ftypes.proto">api/types/types.proto</a>
|
<a href="#api%2fserverNameExample%2fv1%2fuserExample.proto">api/serverNameExample/v1/userExample.proto</a>
|
||||||
<ul>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a href="#types.Column"><span class="badge">M</span>Column</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a href="#types.Params"><span class="badge">M</span>Params</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a href="#api%2fuserExample%2fv1%2fuserExample.proto">api/userExample/v1/userExample.proto</a>
|
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
@@ -221,6 +202,14 @@
|
|||||||
<a href="#api.userExample.v1.GetUserExampleByIDRequest"><span class="badge">M</span>GetUserExampleByIDRequest</a>
|
<a href="#api.userExample.v1.GetUserExampleByIDRequest"><span class="badge">M</span>GetUserExampleByIDRequest</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="#api.userExample.v1.ListUserExampleByIDsReply"><span class="badge">M</span>ListUserExampleByIDsReply</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="#api.userExample.v1.ListUserExampleByIDsRequest"><span class="badge">M</span>ListUserExampleByIDsRequest</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="#api.userExample.v1.ListUserExampleReply"><span class="badge">M</span>ListUserExampleReply</a>
|
<a href="#api.userExample.v1.ListUserExampleReply"><span class="badge">M</span>ListUserExampleReply</a>
|
||||||
</li>
|
</li>
|
||||||
@@ -255,6 +244,25 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="#api%2ftypes%2ftypes.proto">api/types/types.proto</a>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="#types.Column"><span class="badge">M</span>Column</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="#types.Params"><span class="badge">M</span>Params</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li><a href="#scalar-value-types">Scalar Value Types</a></li>
|
<li><a href="#scalar-value-types">Scalar Value Types</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -262,111 +270,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<div class="file-heading">
|
<div class="file-heading">
|
||||||
<h2 id="api/types/types.proto">api/types/types.proto</h2><a href="#title">Top</a>
|
<h2 id="api/serverNameExample/v1/userExample.proto">api/serverNameExample/v1/userExample.proto</h2><a href="#title">Top</a>
|
||||||
</div>
|
|
||||||
<p></p>
|
|
||||||
|
|
||||||
|
|
||||||
<h3 id="types.Column">Column</h3>
|
|
||||||
<p></p>
|
|
||||||
|
|
||||||
|
|
||||||
<table class="field-table">
|
|
||||||
<thead>
|
|
||||||
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td>name</td>
|
|
||||||
<td><a href="#string">string</a></td>
|
|
||||||
<td></td>
|
|
||||||
<td><p>列名 </p></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td>exp</td>
|
|
||||||
<td><a href="#string">string</a></td>
|
|
||||||
<td></td>
|
|
||||||
<td><p>表达式,值为空时默认为=,有=、!=、>、>=、<、<=、like七种类型 </p></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td>value</td>
|
|
||||||
<td><a href="#string">string</a></td>
|
|
||||||
<td></td>
|
|
||||||
<td><p>列值 </p></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td>logic</td>
|
|
||||||
<td><a href="#string">string</a></td>
|
|
||||||
<td></td>
|
|
||||||
<td><p>逻辑类型,值为空时默认为and,有&(and)、||(or)两种类型 </p></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3 id="types.Params">Params</h3>
|
|
||||||
<p></p>
|
|
||||||
|
|
||||||
|
|
||||||
<table class="field-table">
|
|
||||||
<thead>
|
|
||||||
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td>page</td>
|
|
||||||
<td><a href="#int32">int32</a></td>
|
|
||||||
<td></td>
|
|
||||||
<td><p>页码,从0开始 </p></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td>limit</td>
|
|
||||||
<td><a href="#int32">int32</a></td>
|
|
||||||
<td></td>
|
|
||||||
<td><p>每页行数 </p></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td>sort</td>
|
|
||||||
<td><a href="#string">string</a></td>
|
|
||||||
<td></td>
|
|
||||||
<td><p>排序字段,多列排序用逗号分隔 </p></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td>columns</td>
|
|
||||||
<td><a href="#types.Column">Column</a></td>
|
|
||||||
<td>repeated</td>
|
|
||||||
<td><p>查询条件 </p></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="file-heading">
|
|
||||||
<h2 id="api/userExample/v1/userExample.proto">api/userExample/v1/userExample.proto</h2><a href="#title">Top</a>
|
|
||||||
</div>
|
</div>
|
||||||
<p></p>
|
<p></p>
|
||||||
|
|
||||||
@@ -478,7 +382,7 @@
|
|||||||
<td>gender</td>
|
<td>gender</td>
|
||||||
<td><a href="#api.userExample.v1.GenderType">GenderType</a></td>
|
<td><a href="#api.userExample.v1.GenderType">GenderType</a></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><p>性别,1:男,2:女 </p></td>
|
<td><p>性别,0:未知,1:男,2:女 </p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
@@ -716,6 +620,54 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3 id="api.userExample.v1.ListUserExampleByIDsReply">ListUserExampleByIDsReply</h3>
|
||||||
|
<p></p>
|
||||||
|
|
||||||
|
|
||||||
|
<table class="field-table">
|
||||||
|
<thead>
|
||||||
|
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>userExamples</td>
|
||||||
|
<td><a href="#api.userExample.v1.UserExample">UserExample</a></td>
|
||||||
|
<td>repeated</td>
|
||||||
|
<td><p> </p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3 id="api.userExample.v1.ListUserExampleByIDsRequest">ListUserExampleByIDsRequest</h3>
|
||||||
|
<p></p>
|
||||||
|
|
||||||
|
|
||||||
|
<table class="field-table">
|
||||||
|
<thead>
|
||||||
|
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>ids</td>
|
||||||
|
<td><a href="#uint64">uint64</a></td>
|
||||||
|
<td>repeated</td>
|
||||||
|
<td><p> </p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3 id="api.userExample.v1.ListUserExampleReply">ListUserExampleReply</h3>
|
<h3 id="api.userExample.v1.ListUserExampleReply">ListUserExampleReply</h3>
|
||||||
<p></p>
|
<p></p>
|
||||||
|
|
||||||
@@ -1084,6 +1036,13 @@
|
|||||||
<td><p></p></td>
|
<td><p></p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>ListByIDs</td>
|
||||||
|
<td><a href="#api.userExample.v1.ListUserExampleByIDsRequest">ListUserExampleByIDsRequest</a></td>
|
||||||
|
<td><a href="#api.userExample.v1.ListUserExampleByIDsReply">ListUserExampleByIDsReply</a></td>
|
||||||
|
<td><p></p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>List</td>
|
<td>List</td>
|
||||||
<td><a href="#api.userExample.v1.ListUserExampleRequest">ListUserExampleRequest</a></td>
|
<td><a href="#api.userExample.v1.ListUserExampleRequest">ListUserExampleRequest</a></td>
|
||||||
@@ -1097,6 +1056,110 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="file-heading">
|
||||||
|
<h2 id="api/types/types.proto">api/types/types.proto</h2><a href="#title">Top</a>
|
||||||
|
</div>
|
||||||
|
<p></p>
|
||||||
|
|
||||||
|
|
||||||
|
<h3 id="types.Column">Column</h3>
|
||||||
|
<p></p>
|
||||||
|
|
||||||
|
|
||||||
|
<table class="field-table">
|
||||||
|
<thead>
|
||||||
|
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>name</td>
|
||||||
|
<td><a href="#string">string</a></td>
|
||||||
|
<td></td>
|
||||||
|
<td><p>列名 </p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>exp</td>
|
||||||
|
<td><a href="#string">string</a></td>
|
||||||
|
<td></td>
|
||||||
|
<td><p>表达式,值为空时默认为=,有=、!=、>、>=、<、<=、like七种类型 </p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>value</td>
|
||||||
|
<td><a href="#string">string</a></td>
|
||||||
|
<td></td>
|
||||||
|
<td><p>列值 </p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>logic</td>
|
||||||
|
<td><a href="#string">string</a></td>
|
||||||
|
<td></td>
|
||||||
|
<td><p>逻辑类型,值为空时默认为and,只有&(and)、||(or)两种类型 </p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3 id="types.Params">Params</h3>
|
||||||
|
<p></p>
|
||||||
|
|
||||||
|
|
||||||
|
<table class="field-table">
|
||||||
|
<thead>
|
||||||
|
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>page</td>
|
||||||
|
<td><a href="#int32">int32</a></td>
|
||||||
|
<td></td>
|
||||||
|
<td><p>页码,从0开始 </p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>limit</td>
|
||||||
|
<td><a href="#int32">int32</a></td>
|
||||||
|
<td></td>
|
||||||
|
<td><p>每页行数 </p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>sort</td>
|
||||||
|
<td><a href="#string">string</a></td>
|
||||||
|
<td></td>
|
||||||
|
<td><p>排序字段,多列排序用逗号分隔 </p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>columns</td>
|
||||||
|
<td><a href="#types.Column">Column</a></td>
|
||||||
|
<td>repeated</td>
|
||||||
|
<td><p>查询条件 </p></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2 id="scalar-value-types">Scalar Value Types</h2>
|
<h2 id="scalar-value-types">Scalar Value Types</h2>
|
||||||
<table class="scalar-value-types-table">
|
<table class="scalar-value-types-table">
|
||||||
<thead>
|
<thead>
|
||||||
|
@@ -6,7 +6,7 @@
|
|||||||
"swagger": "2.0",
|
"swagger": "2.0",
|
||||||
"info": {
|
"info": {
|
||||||
"description": "http server api docs",
|
"description": "http server api docs",
|
||||||
"title": "sponge api docs",
|
"title": "serverNameExample api docs",
|
||||||
"contact": {},
|
"contact": {},
|
||||||
"version": "v0.0.0"
|
"version": "v0.0.0"
|
||||||
},
|
},
|
||||||
@@ -308,7 +308,7 @@
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"phone": {
|
"phone": {
|
||||||
"description": "手机号码,必须在前加'+86'",
|
"description": "手机号码",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -398,7 +398,7 @@
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"phone": {
|
"phone": {
|
||||||
"description": "手机号码,必须在前加'+86'",
|
"description": "手机号码",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -38,7 +38,7 @@ definitions:
|
|||||||
description: 密码
|
description: 密码
|
||||||
type: string
|
type: string
|
||||||
phone:
|
phone:
|
||||||
description: 手机号码,必须在前加'+86'
|
description: 手机号码
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
handler.GetUserExamplesByIDsRequest:
|
handler.GetUserExamplesByIDsRequest:
|
||||||
@@ -102,7 +102,7 @@ definitions:
|
|||||||
description: 密码
|
description: 密码
|
||||||
type: string
|
type: string
|
||||||
phone:
|
phone:
|
||||||
description: 手机号码,必须在前加'+86'
|
description: 手机号码
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
handlerfunc.checkHealthResponse:
|
handlerfunc.checkHealthResponse:
|
||||||
@@ -116,7 +116,7 @@ host: localhost:8080
|
|||||||
info:
|
info:
|
||||||
contact: {}
|
contact: {}
|
||||||
description: http server api docs
|
description: http server api docs
|
||||||
title: sponge api docs
|
title: serverNameExample api docs
|
||||||
version: v0.0.0
|
version: v0.0.0
|
||||||
paths:
|
paths:
|
||||||
/api/v1/userExample:
|
/api/v1/userExample:
|
||||||
|
8
go.mod
8
go.mod
@@ -25,7 +25,7 @@ require (
|
|||||||
github.com/hashicorp/consul/api v1.12.0
|
github.com/hashicorp/consul/api v1.12.0
|
||||||
github.com/huandu/xstrings v1.3.1
|
github.com/huandu/xstrings v1.3.1
|
||||||
github.com/jinzhu/copier v0.3.5
|
github.com/jinzhu/copier v0.3.5
|
||||||
github.com/nacos-group/nacos-sdk-go v1.1.2
|
github.com/nacos-group/nacos-sdk-go/v2 v2.1.0
|
||||||
github.com/natefinch/lumberjack v2.0.0+incompatible
|
github.com/natefinch/lumberjack v2.0.0+incompatible
|
||||||
github.com/prometheus/client_golang v1.13.0
|
github.com/prometheus/client_golang v1.13.0
|
||||||
github.com/reugn/equalizer v0.0.0-20210216135016-a959c509d7ad
|
github.com/reugn/equalizer v0.0.0-20210216135016-a959c509d7ad
|
||||||
@@ -47,7 +47,7 @@ require (
|
|||||||
go.opentelemetry.io/otel/trace v1.9.0
|
go.opentelemetry.io/otel/trace v1.9.0
|
||||||
go.uber.org/zap v1.21.0
|
go.uber.org/zap v1.21.0
|
||||||
golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde
|
golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde
|
||||||
golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11
|
golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9
|
||||||
google.golang.org/grpc v1.48.0
|
google.golang.org/grpc v1.48.0
|
||||||
google.golang.org/protobuf v1.28.1
|
google.golang.org/protobuf v1.28.1
|
||||||
gorm.io/driver/mysql v1.3.5
|
gorm.io/driver/mysql v1.3.5
|
||||||
@@ -67,6 +67,7 @@ require (
|
|||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
|
||||||
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect
|
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect
|
||||||
github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a // indirect
|
github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a // indirect
|
||||||
|
github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704 // indirect
|
||||||
github.com/armon/go-metrics v0.3.10 // indirect
|
github.com/armon/go-metrics v0.3.10 // indirect
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
github.com/buger/jsonparser v1.1.1 // indirect
|
github.com/buger/jsonparser v1.1.1 // indirect
|
||||||
@@ -83,7 +84,6 @@ require (
|
|||||||
github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1 // indirect
|
github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1 // indirect
|
||||||
github.com/fatih/color v1.13.0 // indirect
|
github.com/fatih/color v1.13.0 // indirect
|
||||||
github.com/gin-contrib/sse v0.1.0 // indirect
|
github.com/gin-contrib/sse v0.1.0 // indirect
|
||||||
github.com/go-errors/errors v1.0.1 // indirect
|
|
||||||
github.com/go-logr/logr v1.2.3 // indirect
|
github.com/go-logr/logr v1.2.3 // indirect
|
||||||
github.com/go-logr/stdr v1.2.2 // indirect
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
github.com/go-openapi/jsonpointer v0.19.5 // indirect
|
github.com/go-openapi/jsonpointer v0.19.5 // indirect
|
||||||
@@ -97,6 +97,7 @@ require (
|
|||||||
github.com/goccy/go-json v0.9.7 // indirect
|
github.com/goccy/go-json v0.9.7 // indirect
|
||||||
github.com/gogo/protobuf v1.3.2 // indirect
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect
|
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect
|
||||||
|
github.com/golang/mock v1.6.0 // indirect
|
||||||
github.com/google/uuid v1.3.0 // indirect
|
github.com/google/uuid v1.3.0 // indirect
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
||||||
github.com/hashicorp/go-hclog v1.2.0 // indirect
|
github.com/hashicorp/go-hclog v1.2.0 // indirect
|
||||||
@@ -110,6 +111,7 @@ require (
|
|||||||
github.com/jinzhu/configor v1.1.1 // indirect
|
github.com/jinzhu/configor v1.1.1 // indirect
|
||||||
github.com/jinzhu/inflection v1.0.0 // indirect
|
github.com/jinzhu/inflection v1.0.0 // indirect
|
||||||
github.com/jinzhu/now v1.1.5 // indirect
|
github.com/jinzhu/now v1.1.5 // indirect
|
||||||
|
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af // indirect
|
||||||
github.com/josharian/intern v1.0.0 // indirect
|
github.com/josharian/intern v1.0.0 // indirect
|
||||||
github.com/json-iterator/go v1.1.12 // indirect
|
github.com/json-iterator/go v1.1.12 // indirect
|
||||||
github.com/leodido/go-urn v1.2.1 // indirect
|
github.com/leodido/go-urn v1.2.1 // indirect
|
||||||
|
26
go.sum
26
go.sum
@@ -92,7 +92,8 @@ github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a h1:HbKu58rmZp
|
|||||||
github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc=
|
github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc=
|
||||||
github.com/alicebob/miniredis/v2 v2.23.0 h1:+lwAJYjvvdIVg6doFHuotFjueJ/7KY10xo/vm3X3Scw=
|
github.com/alicebob/miniredis/v2 v2.23.0 h1:+lwAJYjvvdIVg6doFHuotFjueJ/7KY10xo/vm3X3Scw=
|
||||||
github.com/alicebob/miniredis/v2 v2.23.0/go.mod h1:XNqvJdQJv5mSuVMc0ynneafpnL/zv52acZ6kqeS0t88=
|
github.com/alicebob/miniredis/v2 v2.23.0/go.mod h1:XNqvJdQJv5mSuVMc0ynneafpnL/zv52acZ6kqeS0t88=
|
||||||
github.com/aliyun/alibaba-cloud-sdk-go v1.61.18/go.mod h1:v8ESoHo4SyHmuB4b1tJqDHxfTGEciD+yhvOU/5s1Rfk=
|
github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704 h1:PpfENOj/vPfhhy9N2OFRjpue0hjM5XqAp2thFmkXXIk=
|
||||||
|
github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704/go.mod h1:RcDobYh8k5VP6TNybz9m++gL3ijVI5wueVr0EM10VsU=
|
||||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
||||||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
||||||
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
||||||
@@ -191,8 +192,6 @@ github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/
|
|||||||
github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do=
|
github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do=
|
||||||
github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8=
|
github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8=
|
||||||
github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk=
|
github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk=
|
||||||
github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
|
|
||||||
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
|
|
||||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
||||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
|
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
|
||||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
|
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
|
||||||
@@ -407,6 +406,7 @@ github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkr
|
|||||||
github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
|
github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
|
||||||
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
|
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
|
||||||
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
|
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
|
||||||
|
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM=
|
||||||
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
|
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
|
||||||
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
|
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
|
||||||
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
|
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
|
||||||
@@ -493,8 +493,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
|
|||||||
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||||
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
||||||
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
||||||
github.com/nacos-group/nacos-sdk-go v1.1.2 h1:lWTpf5SXLetQetS7p31eGic/ncqsnn0Zbau1i3eC25Y=
|
github.com/nacos-group/nacos-sdk-go/v2 v2.1.0 h1:PxRwOzHhnK6eGGvioEGkn8s6XRXmUVuXu91i2yQcdDs=
|
||||||
github.com/nacos-group/nacos-sdk-go v1.1.2/go.mod h1:I8Vj4M8ZLpBk7EY2A8RXQE1SbfCA7b56TJBPIFTrUYE=
|
github.com/nacos-group/nacos-sdk-go/v2 v2.1.0/go.mod h1:ys/1adWeKXXzbNWfRNbaFlX/t6HVLWdpsNDvmoWTw0g=
|
||||||
github.com/natefinch/lumberjack v2.0.0+incompatible h1:4QJd3OLAMgj7ph+yZTuX13Ld4UpgHp07nNdFX7mqFfM=
|
github.com/natefinch/lumberjack v2.0.0+incompatible h1:4QJd3OLAMgj7ph+yZTuX13Ld4UpgHp07nNdFX7mqFfM=
|
||||||
github.com/natefinch/lumberjack v2.0.0+incompatible/go.mod h1:Wi9p2TTF5DG5oU+6YfsmYQpsTIOm0B1VNzQg9Mw6nPk=
|
github.com/natefinch/lumberjack v2.0.0+incompatible/go.mod h1:Wi9p2TTF5DG5oU+6YfsmYQpsTIOm0B1VNzQg9Mw6nPk=
|
||||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||||
@@ -543,6 +543,7 @@ github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP
|
|||||||
github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
|
github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
|
||||||
github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
|
github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
|
||||||
github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
|
github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
|
||||||
|
github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
|
||||||
github.com/prometheus/client_golang v1.13.0 h1:b71QUfeo5M8gq2+evJdTPfZhYMAU0uKPkyPJ7TPsloU=
|
github.com/prometheus/client_golang v1.13.0 h1:b71QUfeo5M8gq2+evJdTPfZhYMAU0uKPkyPJ7TPsloU=
|
||||||
github.com/prometheus/client_golang v1.13.0/go.mod h1:vTeo+zgvILHsnnj/39Ou/1fPN5nJFOEMgftOUOmlvYQ=
|
github.com/prometheus/client_golang v1.13.0/go.mod h1:vTeo+zgvILHsnnj/39Ou/1fPN5nJFOEMgftOUOmlvYQ=
|
||||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
||||||
@@ -585,11 +586,9 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx
|
|||||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||||
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
||||||
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
|
||||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
||||||
github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N3yZFZkDFs=
|
github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N3yZFZkDFs=
|
||||||
github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo=
|
github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo=
|
||||||
github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
|
||||||
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
||||||
github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg=
|
github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg=
|
||||||
github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM=
|
github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM=
|
||||||
@@ -683,18 +682,14 @@ go.opentelemetry.io/otel/trace v1.9.0 h1:oZaCNJUjWcg60VXWee8lJKlqhPbXAPB51URuR47
|
|||||||
go.opentelemetry.io/otel/trace v1.9.0/go.mod h1:2737Q0MuG8q1uILYm2YYVkAyLtOofiTNGg6VODnOiPo=
|
go.opentelemetry.io/otel/trace v1.9.0/go.mod h1:2737Q0MuG8q1uILYm2YYVkAyLtOofiTNGg6VODnOiPo=
|
||||||
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
|
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
|
||||||
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||||
go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
|
|
||||||
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
|
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
|
||||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||||
go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
|
go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
|
||||||
go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
|
go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
|
||||||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
||||||
go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
|
|
||||||
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
|
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
|
||||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
||||||
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
|
|
||||||
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
||||||
go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
|
|
||||||
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
|
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
|
||||||
go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8=
|
go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8=
|
||||||
go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
|
go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
|
||||||
@@ -837,6 +832,7 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ
|
|||||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde h1:ejfdSekXMDxDLbRrJMwUk6KnSLZ2McaUCVcIKM+N6jc=
|
golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde h1:ejfdSekXMDxDLbRrJMwUk6KnSLZ2McaUCVcIKM+N6jc=
|
||||||
golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
@@ -943,8 +939,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
|||||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11 h1:GZokNIeuVkl3aZHJchRrr13WCsols02MLUcz1U9is6M=
|
golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 h1:ftMN5LMiBFjbzleLqtoBZk7KdJwhuybIU+FckUHgoyQ=
|
||||||
golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||||
@@ -962,8 +958,6 @@ golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtn
|
|||||||
golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
@@ -1196,7 +1190,7 @@ gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMy
|
|||||||
gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=
|
gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=
|
||||||
gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y=
|
gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y=
|
||||||
gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ=
|
gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ=
|
||||||
gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||||
gopkg.in/ini.v1 v1.66.4 h1:SsAcf+mM7mRZo2nJNGt8mZCjG8ZRaNGMURJw7BsIST4=
|
gopkg.in/ini.v1 v1.66.4 h1:SsAcf+mM7mRZo2nJNGt8mZCjG8ZRaNGMURJw7BsIST4=
|
||||||
gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
|
gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
|
||||||
|
2
internal/cache/userExample.go
vendored
2
internal/cache/userExample.go
vendored
@@ -4,7 +4,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/model"
|
"github.com/zhufuyi/sponge/internal/model"
|
||||||
"github.com/zhufuyi/sponge/pkg/cache"
|
"github.com/zhufuyi/sponge/pkg/cache"
|
||||||
"github.com/zhufuyi/sponge/pkg/encoding"
|
"github.com/zhufuyi/sponge/pkg/encoding"
|
||||||
"github.com/zhufuyi/sponge/pkg/utils"
|
"github.com/zhufuyi/sponge/pkg/utils"
|
||||||
|
2
internal/cache/userExample_test.go
vendored
2
internal/cache/userExample_test.go
vendored
@@ -4,7 +4,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/model"
|
"github.com/zhufuyi/sponge/internal/model"
|
||||||
"github.com/zhufuyi/sponge/pkg/gotest"
|
"github.com/zhufuyi/sponge/pkg/gotest"
|
||||||
"github.com/zhufuyi/sponge/pkg/utils"
|
"github.com/zhufuyi/sponge/pkg/utils"
|
||||||
|
|
||||||
|
@@ -6,8 +6,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/cache"
|
"github.com/zhufuyi/sponge/internal/cache"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/model"
|
"github.com/zhufuyi/sponge/internal/model"
|
||||||
cacheBase "github.com/zhufuyi/sponge/pkg/cache"
|
cacheBase "github.com/zhufuyi/sponge/pkg/cache"
|
||||||
"github.com/zhufuyi/sponge/pkg/goredis"
|
"github.com/zhufuyi/sponge/pkg/goredis"
|
||||||
"github.com/zhufuyi/sponge/pkg/mysql/query"
|
"github.com/zhufuyi/sponge/pkg/mysql/query"
|
||||||
|
@@ -4,8 +4,8 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/cache"
|
"github.com/zhufuyi/sponge/internal/cache"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/model"
|
"github.com/zhufuyi/sponge/internal/model"
|
||||||
"github.com/zhufuyi/sponge/pkg/gotest"
|
"github.com/zhufuyi/sponge/pkg/gotest"
|
||||||
"github.com/zhufuyi/sponge/pkg/mysql/query"
|
"github.com/zhufuyi/sponge/pkg/mysql/query"
|
||||||
|
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
package ecode
|
package ecode
|
||||||
|
|
||||||
import "github.com/zhufuyi/sponge/pkg/errcode"
|
import (
|
||||||
|
"github.com/zhufuyi/sponge/pkg/errcode"
|
||||||
|
)
|
||||||
|
|
||||||
// nolint
|
// nolint
|
||||||
// rpc系统级别错误码,有status前缀,错误码范围300000~400000
|
// rpc系统级别错误码,有status前缀,错误码范围300000~400000
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
package ecode
|
package ecode
|
||||||
|
|
||||||
import "github.com/zhufuyi/sponge/pkg/errcode"
|
import (
|
||||||
|
"github.com/zhufuyi/sponge/pkg/errcode"
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// todo must be modified manually
|
// todo must be modified manually
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
package ecode
|
package ecode
|
||||||
|
|
||||||
import "github.com/zhufuyi/sponge/pkg/errcode"
|
import (
|
||||||
|
"github.com/zhufuyi/sponge/pkg/errcode"
|
||||||
|
)
|
||||||
|
|
||||||
// nolint
|
// nolint
|
||||||
// http系统级别错误码,无Err前缀,错误码范围100000~200000
|
// http系统级别错误码,无Err前缀,错误码范围100000~200000
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
package ecode
|
package ecode
|
||||||
|
|
||||||
import "github.com/zhufuyi/sponge/pkg/errcode"
|
import (
|
||||||
|
"github.com/zhufuyi/sponge/pkg/errcode"
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// todo must be modified manually
|
// todo must be modified manually
|
||||||
|
@@ -3,10 +3,10 @@ package handler
|
|||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/cache"
|
"github.com/zhufuyi/sponge/internal/cache"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/dao"
|
"github.com/zhufuyi/sponge/internal/dao"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/ecode"
|
"github.com/zhufuyi/sponge/internal/ecode"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/model"
|
"github.com/zhufuyi/sponge/internal/model"
|
||||||
"github.com/zhufuyi/sponge/pkg/gin/response"
|
"github.com/zhufuyi/sponge/pkg/gin/response"
|
||||||
"github.com/zhufuyi/sponge/pkg/logger"
|
"github.com/zhufuyi/sponge/pkg/logger"
|
||||||
"github.com/zhufuyi/sponge/pkg/mysql/query"
|
"github.com/zhufuyi/sponge/pkg/mysql/query"
|
||||||
@@ -270,7 +270,7 @@ type CreateUserExampleRequest struct {
|
|||||||
Name string `json:"name" binding:"min=2"` // 名称
|
Name string `json:"name" binding:"min=2"` // 名称
|
||||||
Email string `json:"email" binding:"email"` // 邮件
|
Email string `json:"email" binding:"email"` // 邮件
|
||||||
Password string `json:"password" binding:"md5"` // 密码
|
Password string `json:"password" binding:"md5"` // 密码
|
||||||
Phone string `form:"phone" binding:"e164"` // 手机号码,必须在前加'+86'
|
Phone string `form:"phone" binding:"e164"` // 手机号码,e164表示<+国家编号><手机号码>
|
||||||
Avatar string `form:"avatar" binding:"min=5"` // 头像
|
Avatar string `form:"avatar" binding:"min=5"` // 头像
|
||||||
Age int `form:"age" binding:"gt=0,lt=120"` // 年龄
|
Age int `form:"age" binding:"gt=0,lt=120"` // 年龄
|
||||||
Gender int `form:"gender" binding:"gte=0,lte=2"` // 性别,1:男,2:女
|
Gender int `form:"gender" binding:"gte=0,lte=2"` // 性别,1:男,2:女
|
||||||
@@ -282,7 +282,7 @@ type UpdateUserExampleByIDRequest struct {
|
|||||||
Name string `json:"name" binding:""` // 名称
|
Name string `json:"name" binding:""` // 名称
|
||||||
Email string `json:"email" binding:""` // 邮件
|
Email string `json:"email" binding:""` // 邮件
|
||||||
Password string `json:"password" binding:""` // 密码
|
Password string `json:"password" binding:""` // 密码
|
||||||
Phone string `form:"phone" binding:""` // 手机号码,必须在前加'+86'
|
Phone string `form:"phone" binding:""` // 手机号码
|
||||||
Avatar string `form:"avatar" binding:""` // 头像
|
Avatar string `form:"avatar" binding:""` // 头像
|
||||||
Age int `form:"age" binding:""` // 年龄
|
Age int `form:"age" binding:""` // 年龄
|
||||||
Gender int `form:"gender" binding:""` // 性别,1:男,2:女
|
Gender int `form:"gender" binding:""` // 性别,1:男,2:女
|
||||||
|
@@ -5,9 +5,9 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/cache"
|
"github.com/zhufuyi/sponge/internal/cache"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/dao"
|
"github.com/zhufuyi/sponge/internal/dao"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/model"
|
"github.com/zhufuyi/sponge/internal/model"
|
||||||
"github.com/zhufuyi/sponge/pkg/gohttp"
|
"github.com/zhufuyi/sponge/pkg/gohttp"
|
||||||
"github.com/zhufuyi/sponge/pkg/gotest"
|
"github.com/zhufuyi/sponge/pkg/gotest"
|
||||||
"github.com/zhufuyi/sponge/pkg/mysql/query"
|
"github.com/zhufuyi/sponge/pkg/mysql/query"
|
||||||
|
@@ -4,7 +4,7 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/config"
|
"github.com/zhufuyi/sponge/internal/config"
|
||||||
"github.com/zhufuyi/sponge/pkg/goredis"
|
"github.com/zhufuyi/sponge/pkg/goredis"
|
||||||
"github.com/zhufuyi/sponge/pkg/mysql"
|
"github.com/zhufuyi/sponge/pkg/mysql"
|
||||||
|
|
||||||
@@ -76,7 +76,11 @@ func CloseMysql() error {
|
|||||||
|
|
||||||
// InitRedis 连接redis
|
// InitRedis 连接redis
|
||||||
func InitRedis() {
|
func InitRedis() {
|
||||||
opts := []goredis.Option{}
|
opts := []goredis.Option{
|
||||||
|
goredis.WithDialTimeout(time.Duration(config.Get().Redis.DialTimeout) * time.Second),
|
||||||
|
goredis.WithReadTimeout(time.Duration(config.Get().Redis.ReadTimeout) * time.Second),
|
||||||
|
goredis.WithWriteTimeout(time.Duration(config.Get().Redis.WriteTimeout) * time.Second),
|
||||||
|
}
|
||||||
if config.Get().App.EnableTracing {
|
if config.Get().App.EnableTracing {
|
||||||
opts = append(opts, goredis.WithEnableTrace())
|
opts = append(opts, goredis.WithEnableTrace())
|
||||||
}
|
}
|
||||||
|
@@ -6,7 +6,7 @@ import (
|
|||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/zhufuyi/sponge/configs"
|
"github.com/zhufuyi/sponge/configs"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/config"
|
"github.com/zhufuyi/sponge/internal/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 测试时需要连接真实数据
|
// 测试时需要连接真实数据
|
||||||
|
@@ -5,7 +5,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/zhufuyi/sponge/docs"
|
"github.com/zhufuyi/sponge/docs"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/config"
|
"github.com/zhufuyi/sponge/internal/config"
|
||||||
"github.com/zhufuyi/sponge/pkg/gin/handlerfunc"
|
"github.com/zhufuyi/sponge/pkg/gin/handlerfunc"
|
||||||
"github.com/zhufuyi/sponge/pkg/gin/middleware"
|
"github.com/zhufuyi/sponge/pkg/gin/middleware"
|
||||||
"github.com/zhufuyi/sponge/pkg/gin/middleware/metrics"
|
"github.com/zhufuyi/sponge/pkg/gin/middleware/metrics"
|
||||||
|
@@ -3,11 +3,11 @@ package routers
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/zhufuyi/sponge/configs"
|
"github.com/zhufuyi/sponge/configs"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/config"
|
"github.com/zhufuyi/sponge/internal/config"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestNewRouter(t *testing.T) {
|
func TestNewRouter(t *testing.T) {
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
package routers
|
package routers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/handler"
|
"github.com/zhufuyi/sponge/internal/handler"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
@@ -8,8 +8,8 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/config"
|
"github.com/zhufuyi/sponge/internal/config"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/service"
|
"github.com/zhufuyi/sponge/internal/service"
|
||||||
"github.com/zhufuyi/sponge/pkg/app"
|
"github.com/zhufuyi/sponge/pkg/app"
|
||||||
"github.com/zhufuyi/sponge/pkg/grpc/interceptor"
|
"github.com/zhufuyi/sponge/pkg/grpc/interceptor"
|
||||||
"github.com/zhufuyi/sponge/pkg/grpc/metrics"
|
"github.com/zhufuyi/sponge/pkg/grpc/metrics"
|
||||||
@@ -105,7 +105,7 @@ func (s *grpcServer) serverOptions() []grpc.ServerOption {
|
|||||||
if s == nil || s.server == nil {
|
if s == nil || s.server == nil {
|
||||||
return errors.New("grpc server is nil")
|
return errors.New("grpc server is nil")
|
||||||
}
|
}
|
||||||
promAddr := fmt.Sprintf(":%d", config.Get().Metrics.Port)
|
promAddr := fmt.Sprintf(":%d", config.Get().Grpc.MetricsPort)
|
||||||
s.metricsHTTPServer = metrics.GoHTTPService(promAddr, s.server)
|
s.metricsHTTPServer = metrics.GoHTTPService(promAddr, s.server)
|
||||||
logger.Infof("start up grpc metrics service, addr = %s", promAddr)
|
logger.Infof("start up grpc metrics service, addr = %s", promAddr)
|
||||||
return nil
|
return nil
|
||||||
|
@@ -6,7 +6,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/zhufuyi/sponge/configs"
|
"github.com/zhufuyi/sponge/configs"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/config"
|
"github.com/zhufuyi/sponge/internal/config"
|
||||||
"github.com/zhufuyi/sponge/pkg/registry"
|
"github.com/zhufuyi/sponge/pkg/registry"
|
||||||
"github.com/zhufuyi/sponge/pkg/utils"
|
"github.com/zhufuyi/sponge/pkg/utils"
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ func TestGRPCServer(t *testing.T) {
|
|||||||
|
|
||||||
port, _ := utils.GetAvailablePort()
|
port, _ := utils.GetAvailablePort()
|
||||||
addr := fmt.Sprintf(":%d", port)
|
addr := fmt.Sprintf(":%d", port)
|
||||||
instance := registry.NewServiceInstance("foo", []string{"grpc://127.0.0.1:9090"})
|
instance := registry.NewServiceInstance("foo", []string{"grpc://127.0.0.1:8282"})
|
||||||
|
|
||||||
server := NewGRPCServer(addr,
|
server := NewGRPCServer(addr,
|
||||||
WithGRPCReadTimeout(time.Second),
|
WithGRPCReadTimeout(time.Second),
|
||||||
|
@@ -6,7 +6,7 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/routers"
|
"github.com/zhufuyi/sponge/internal/routers"
|
||||||
"github.com/zhufuyi/sponge/pkg/app"
|
"github.com/zhufuyi/sponge/pkg/app"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
@@ -6,7 +6,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/zhufuyi/sponge/configs"
|
"github.com/zhufuyi/sponge/configs"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/config"
|
"github.com/zhufuyi/sponge/internal/config"
|
||||||
"github.com/zhufuyi/sponge/pkg/utils"
|
"github.com/zhufuyi/sponge/pkg/utils"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
@@ -4,10 +4,10 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
pb "github.com/zhufuyi/sponge/api/serverNameExample/v1"
|
pb "github.com/zhufuyi/sponge/api/serverNameExample/v1"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/cache"
|
"github.com/zhufuyi/sponge/internal/cache"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/dao"
|
"github.com/zhufuyi/sponge/internal/dao"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/ecode"
|
"github.com/zhufuyi/sponge/internal/ecode"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/model"
|
"github.com/zhufuyi/sponge/internal/model"
|
||||||
"github.com/zhufuyi/sponge/pkg/logger"
|
"github.com/zhufuyi/sponge/pkg/logger"
|
||||||
"github.com/zhufuyi/sponge/pkg/mysql/query"
|
"github.com/zhufuyi/sponge/pkg/mysql/query"
|
||||||
|
|
||||||
|
@@ -6,12 +6,12 @@ package service
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/zhufuyi/sponge/internal/config"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
pb "github.com/zhufuyi/sponge/api/serverNameExample/v1"
|
pb "github.com/zhufuyi/sponge/api/serverNameExample/v1"
|
||||||
"github.com/zhufuyi/sponge/api/types"
|
"github.com/zhufuyi/sponge/api/types"
|
||||||
"github.com/zhufuyi/sponge/configs"
|
"github.com/zhufuyi/sponge/configs"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/config"
|
|
||||||
"github.com/zhufuyi/sponge/pkg/grpc/benchmark"
|
"github.com/zhufuyi/sponge/pkg/grpc/benchmark"
|
||||||
|
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
@@ -53,10 +53,10 @@ func Test_userExampleService_methods(t *testing.T) {
|
|||||||
fn: func() (interface{}, error) {
|
fn: func() (interface{}, error) {
|
||||||
// todo test after filling in parameters
|
// todo test after filling in parameters
|
||||||
return cli.Create(ctx, &pb.CreateUserExampleRequest{
|
return cli.Create(ctx, &pb.CreateUserExampleRequest{
|
||||||
Name: "宋九",
|
Name: "foo7",
|
||||||
Email: "foo7@bar.com",
|
Email: "foo7@bar.com",
|
||||||
Password: "f447b20a7fcbf53a5d5be013ea0b15af",
|
Password: "f447b20a7fcbf53a5d5be013ea0b15af",
|
||||||
Phone: "+8618576552066",
|
Phone: "18666666666",
|
||||||
Avatar: "http://internal.com/7.jpg",
|
Avatar: "http://internal.com/7.jpg",
|
||||||
Age: 21,
|
Age: 21,
|
||||||
Gender: 2,
|
Gender: 2,
|
||||||
|
@@ -1,14 +1,14 @@
|
|||||||
package service
|
package service
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/zhufuyi/sponge/internal/cache"
|
||||||
|
"github.com/zhufuyi/sponge/internal/dao"
|
||||||
|
"github.com/zhufuyi/sponge/internal/model"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
pb "github.com/zhufuyi/sponge/api/serverNameExample/v1"
|
pb "github.com/zhufuyi/sponge/api/serverNameExample/v1"
|
||||||
"github.com/zhufuyi/sponge/api/types"
|
"github.com/zhufuyi/sponge/api/types"
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/cache"
|
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/dao"
|
|
||||||
"github.com/zhufuyi/sponge/internal/serverNameExample/model"
|
|
||||||
"github.com/zhufuyi/sponge/pkg/gotest"
|
"github.com/zhufuyi/sponge/pkg/gotest"
|
||||||
|
|
||||||
"github.com/DATA-DOG/go-sqlmock"
|
"github.com/DATA-DOG/go-sqlmock"
|
||||||
|
@@ -4,12 +4,6 @@
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
### 安装
|
|
||||||
|
|
||||||
> go get -u github.com/zhufuyi/pkg/app
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
### 使用示例
|
### 使用示例
|
||||||
|
|
||||||
```go
|
```go
|
||||||
|
@@ -2,16 +2,23 @@
|
|||||||
|
|
||||||
解析yaml、json、toml配置文件到go struct,结合[goctl](https://github.com/zhufuyi/goctl)工具自动生成config.go到指定目录,例如:
|
解析yaml、json、toml配置文件到go struct,结合[goctl](https://github.com/zhufuyi/goctl)工具自动生成config.go到指定目录,例如:
|
||||||
|
|
||||||
> goctl covert yaml --file=test.yaml --tags=json --out=/yourProjectName/config。
|
> goctl covert yaml --file=test.yaml --tags=json --out=yourServerName/config。
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
### 安装
|
|
||||||
|
|
||||||
> go get -u github.com/zhufuyi/pkg/conf
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
### 使用示例
|
### 使用示例
|
||||||
|
|
||||||
具体示例看[config](internal/config)。
|
```go
|
||||||
|
// 方式一:无监听配置文件
|
||||||
|
conf := &App{}
|
||||||
|
err := Parse("test.yml", conf)
|
||||||
|
|
||||||
|
// 方式二:开启监听配置文件
|
||||||
|
conf := &App{}
|
||||||
|
fs := []func(){
|
||||||
|
func() {
|
||||||
|
fmt.Println("监听到配置文件有更新")
|
||||||
|
},
|
||||||
|
}
|
||||||
|
err := Parse("test.yml", conf, fs...)
|
||||||
|
```
|
||||||
|
@@ -55,7 +55,6 @@ func watchConfig(obj interface{}, fs ...func()) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("viper.Unmarshal error: ", err)
|
fmt.Println("viper.Unmarshal error: ", err)
|
||||||
} else {
|
} else {
|
||||||
// 更新初始化
|
|
||||||
for _, f := range fs {
|
for _, f := range fs {
|
||||||
f()
|
f()
|
||||||
}
|
}
|
||||||
|
@@ -3,6 +3,7 @@ package conf
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
@@ -51,3 +52,28 @@ func Test_watchConfig(t *testing.T) {
|
|||||||
|
|
||||||
watchConfig(c)
|
watchConfig(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 测试监听配置文件更新
|
||||||
|
func TestWatch(t *testing.T) {
|
||||||
|
conf := make(map[string]interface{})
|
||||||
|
|
||||||
|
fs := []func(){
|
||||||
|
func() {
|
||||||
|
fmt.Println("更新字段1")
|
||||||
|
},
|
||||||
|
func() {
|
||||||
|
fmt.Println("更新字段2")
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
err := Parse("test.yml", &conf, fs...)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < 1; i++ { // 设置在等待时间内,修改配置文件env字段,查看是否有变化
|
||||||
|
fmt.Println(conf["app"])
|
||||||
|
time.Sleep(time.Second)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
# app 设置
|
# app 设置
|
||||||
app:
|
app:
|
||||||
name: "userExample" # 服务名称
|
name: "userExample" # 服务名称
|
||||||
env: "dev" # 运行环境,dev:开发环境,prod:生产环境,pre:预生产环境
|
env: "dev1" # 运行环境,dev:开发环境,prod:生产环境,pre:预生产环境
|
||||||
version: "v0.0.0" # 版本
|
version: "v0.0.0" # 版本
|
||||||
|
|
||||||
|
|
||||||
|
@@ -51,7 +51,7 @@ func Test_discoveryResolver_Close(t *testing.T) {
|
|||||||
r.ResolveNow(resolver.ResolveNowOptions{})
|
r.ResolveNow(resolver.ResolveNowOptions{})
|
||||||
r.update([]*registry.ServiceInstance{registry.NewServiceInstance(
|
r.update([]*registry.ServiceInstance{registry.NewServiceInstance(
|
||||||
"demo",
|
"demo",
|
||||||
[]string{"grpc://127.0.0.1:9090"},
|
[]string{"grpc://127.0.0.1:8282"},
|
||||||
)})
|
)})
|
||||||
r.watch()
|
r.watch()
|
||||||
}
|
}
|
||||||
|
@@ -13,12 +13,6 @@
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
### 安装
|
|
||||||
|
|
||||||
> go get -u github.com/zhufuyi/pkg/errcode
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
### 使用示例
|
### 使用示例
|
||||||
|
|
||||||
### http错误码使用示例
|
### http错误码使用示例
|
||||||
|
@@ -4,12 +4,6 @@ gin中间件插件。
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
## 安装
|
|
||||||
|
|
||||||
> go get -u github.com/zhufuyi/pkg/gin/middleware
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
## 使用示例
|
## 使用示例
|
||||||
|
|
||||||
### 日志中间件
|
### 日志中间件
|
||||||
|
@@ -4,12 +4,6 @@ gin `path` or `ip` limit.
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
### Install
|
|
||||||
|
|
||||||
> go get -u github.com/zhufuyi/pkg/gin/middleware/ratelimiter
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
### Usage
|
### Usage
|
||||||
|
|
||||||
```go
|
```go
|
||||||
|
@@ -1,12 +1,6 @@
|
|||||||
## response
|
## response
|
||||||
|
|
||||||
封装gin返回json数据插件。
|
封装gin返回同一个格式的json数据。
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
## 安装
|
|
||||||
|
|
||||||
> go get -u github.com/zhufuyi/pkg/gin/response
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
@@ -4,12 +4,6 @@ gin请求参数校验。
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
## 安装
|
|
||||||
|
|
||||||
> go get -u github.com/zhufuyi/pkg/gin/validator
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
## 使用示例
|
## 使用示例
|
||||||
|
|
||||||
```go
|
```go
|
||||||
|
@@ -4,12 +4,6 @@
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
## 安装
|
|
||||||
|
|
||||||
> go get -u github.com/zhufuyi/pkg/gofile
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
## 使用示例
|
## 使用示例
|
||||||
|
|
||||||
```go
|
```go
|
||||||
|
@@ -4,12 +4,6 @@ http请求客户端,只支持返回json格式。
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
## 安装
|
|
||||||
|
|
||||||
> go get -u github.com/zhufuyi/pkg/gohttp
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
## 使用示例
|
## 使用示例
|
||||||
|
|
||||||
### 标准CURD
|
### 标准CURD
|
||||||
|
@@ -4,12 +4,6 @@
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
## 安装
|
|
||||||
|
|
||||||
> go get -u github.com/zhufuyi/pkg/goredis
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
## 使用示例
|
## 使用示例
|
||||||
|
|
||||||
```go
|
```go
|
||||||
|
@@ -14,28 +14,15 @@ const (
|
|||||||
DefaultRedisName = "default"
|
DefaultRedisName = "default"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RedisClient redis 客户端
|
|
||||||
var RedisClient *redis.Client
|
|
||||||
|
|
||||||
// Init 连接redis
|
// Init 连接redis
|
||||||
// redisURL 支持格式:
|
// dsn 支持格式:
|
||||||
// 没有密码,没有db:localhost:6379
|
// 没有密码,没有db:localhost:6379
|
||||||
// 有密码,有db:<user>:<pass>@localhost:6379/2
|
// 有密码,有db:<user>:<pass>@localhost:6379/2
|
||||||
func Init(redisURL string, opts ...Option) (*redis.Client, error) {
|
func Init(dsn string, opts ...Option) (*redis.Client, error) {
|
||||||
o := defaultOptions()
|
o := defaultOptions()
|
||||||
o.apply(opts...)
|
o.apply(opts...)
|
||||||
|
|
||||||
if len(redisURL) > 8 {
|
opt, err := getRedisOpt(dsn, o)
|
||||||
if !strings.Contains(redisURL[len(redisURL)-3:], "/") {
|
|
||||||
redisURL += "/0" // 默认使用db 0
|
|
||||||
}
|
|
||||||
|
|
||||||
if redisURL[:8] != "redis://" {
|
|
||||||
redisURL = "redis://" + redisURL
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
opt, err := redis.ParseURL(redisURL)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -48,3 +35,53 @@ func Init(redisURL string, opts ...Option) (*redis.Client, error) {
|
|||||||
|
|
||||||
return rdb, nil
|
return rdb, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getRedisOpt(dsn string, opts *options) (*redis.Options, error) {
|
||||||
|
if len(dsn) > 8 {
|
||||||
|
if !strings.Contains(dsn[len(dsn)-3:], "/") {
|
||||||
|
dsn += "/0" // 默认使用db 0
|
||||||
|
}
|
||||||
|
|
||||||
|
if dsn[:8] != "redis://" {
|
||||||
|
dsn = "redis://" + dsn
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
redisOpts, err := redis.ParseURL(dsn)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if opts.dialTimeout > 0 {
|
||||||
|
redisOpts.DialTimeout = opts.dialTimeout
|
||||||
|
}
|
||||||
|
if opts.readTimeout > 0 {
|
||||||
|
redisOpts.ReadTimeout = opts.readTimeout
|
||||||
|
}
|
||||||
|
if opts.writeTimeout > 0 {
|
||||||
|
redisOpts.WriteTimeout = opts.writeTimeout
|
||||||
|
}
|
||||||
|
|
||||||
|
return redisOpts, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Init2 连接redis
|
||||||
|
func Init2(addr string, password string, db int, opts ...Option) *redis.Client {
|
||||||
|
o := defaultOptions()
|
||||||
|
o.apply(opts...)
|
||||||
|
|
||||||
|
rdb := redis.NewClient(&redis.Options{
|
||||||
|
Addr: addr,
|
||||||
|
Password: password,
|
||||||
|
DB: db,
|
||||||
|
DialTimeout: o.dialTimeout,
|
||||||
|
ReadTimeout: o.readTimeout,
|
||||||
|
WriteTimeout: o.writeTimeout,
|
||||||
|
})
|
||||||
|
|
||||||
|
if o.enableTrace { // 根据设置是否开启链路跟踪
|
||||||
|
rdb.AddHook(redisotel.TracingHook{})
|
||||||
|
}
|
||||||
|
|
||||||
|
return rdb
|
||||||
|
}
|
||||||
|
@@ -1,10 +1,15 @@
|
|||||||
package goredis
|
package goredis
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
// Option set the redis options.
|
// Option set the redis options.
|
||||||
type Option func(*options)
|
type Option func(*options)
|
||||||
|
|
||||||
type options struct {
|
type options struct {
|
||||||
enableTrace bool
|
enableTrace bool
|
||||||
|
dialTimeout time.Duration
|
||||||
|
readTimeout time.Duration
|
||||||
|
writeTimeout time.Duration
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *options) apply(opts ...Option) {
|
func (o *options) apply(opts ...Option) {
|
||||||
@@ -26,3 +31,24 @@ func WithEnableTrace() Option {
|
|||||||
o.enableTrace = true
|
o.enableTrace = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WithDialTimeout set dail timeout
|
||||||
|
func WithDialTimeout(t time.Duration) Option {
|
||||||
|
return func(o *options) {
|
||||||
|
o.dialTimeout = t
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithReadTimeout set read timeout
|
||||||
|
func WithReadTimeout(t time.Duration) Option {
|
||||||
|
return func(o *options) {
|
||||||
|
o.readTimeout = t
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithWriteTimeout set write timeout
|
||||||
|
func WithWriteTimeout(t time.Duration) Option {
|
||||||
|
return func(o *options) {
|
||||||
|
o.writeTimeout = t
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -2,13 +2,6 @@
|
|||||||
|
|
||||||
gotest是一个模拟测试cache、dao、handler的库。
|
gotest是一个模拟测试cache、dao、handler的库。
|
||||||
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
## 安装
|
|
||||||
|
|
||||||
> go get -u github.com/zhufuyi/pkg/gotest
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
## 使用示例
|
## 使用示例
|
||||||
|
@@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
```go
|
```go
|
||||||
func benchmarkExample() error {
|
func benchmarkExample() error {
|
||||||
host := "127.0.0.1:9090"
|
host := "127.0.0.1:8282"
|
||||||
protoFile := "api/userExample/v1/userExample.proto"
|
protoFile := "api/serverNameExample/v1/userExample.proto"
|
||||||
// 如果压测过程中缺少第三方依赖,复制到项目的third_party目录下(不包括import路径)
|
// 如果压测过程中缺少第三方依赖,复制到项目的third_party目录下(不包括import路径)
|
||||||
importPaths := []string{"third_party"}
|
importPaths := []string{"third_party"}
|
||||||
message := &pb.GetUserExampleByIDRequest{
|
message := &pb.GetUserExampleByIDRequest{
|
||||||
|
@@ -8,18 +8,18 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestDial(t *testing.T) {
|
func TestDial(t *testing.T) {
|
||||||
_, err := Dial(context.Background(), "localhost:9090")
|
_, err := Dial(context.Background(), "localhost:8282")
|
||||||
assert.NotNil(t, err)
|
assert.NotNil(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDialInsecure(t *testing.T) {
|
func TestDialInsecure(t *testing.T) {
|
||||||
_, err := DialInsecure(context.Background(), "localhost:9090")
|
_, err := DialInsecure(context.Background(), "localhost:8282")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_dial(t *testing.T) {
|
func Test_dial(t *testing.T) {
|
||||||
_, err := dial(context.Background(), "localhost:9090", true)
|
_, err := dial(context.Background(), "localhost:8282", true)
|
||||||
assert.NotNil(t, err)
|
assert.NotNil(t, err)
|
||||||
_, err = dial(context.Background(), "localhost:9090", false)
|
_, err = dial(context.Background(), "localhost:8282", false)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
@@ -11,7 +11,7 @@ import (
|
|||||||
var r = &ResolverBuilder{
|
var r = &ResolverBuilder{
|
||||||
SchemeVal: "grpc",
|
SchemeVal: "grpc",
|
||||||
ServiceName: "demo",
|
ServiceName: "demo",
|
||||||
Addrs: []string{"localhost:9090"},
|
Addrs: []string{"localhost:8282"},
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestRegister(t *testing.T) {
|
func TestRegister(t *testing.T) {
|
||||||
|
@@ -4,12 +4,6 @@ token生成和验证。
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
## 安装
|
|
||||||
|
|
||||||
> go get -u github.com/zhufuyi/pkg/jwt
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
## 使用示例
|
## 使用示例
|
||||||
|
|
||||||
```go
|
```go
|
||||||
|
@@ -42,13 +42,13 @@ func TestVerifyTokenStandard(t *testing.T) {
|
|||||||
// token已过期
|
// token已过期
|
||||||
Init(
|
Init(
|
||||||
WithSigningKey("123456"),
|
WithSigningKey("123456"),
|
||||||
WithExpire(time.Millisecond*200),
|
WithExpire(time.Second),
|
||||||
)
|
)
|
||||||
token, err = GenerateTokenStandard()
|
token, err = GenerateTokenStandard()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
time.Sleep(time.Second)
|
time.Sleep(time.Second * 2)
|
||||||
err = VerifyTokenStandard(token)
|
err = VerifyTokenStandard(token)
|
||||||
assert.Equal(t, err, errExpired)
|
assert.Equal(t, err, errExpired)
|
||||||
}
|
}
|
||||||
|
@@ -4,12 +4,6 @@
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
## 安装
|
|
||||||
|
|
||||||
> go get -u github.com/zhufuyi/pkg/krand
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
## 使用示例
|
## 使用示例
|
||||||
|
|
||||||
### 生成随机字符串
|
### 生成随机字符串
|
||||||
|
@@ -8,12 +8,6 @@
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
## 安装
|
|
||||||
|
|
||||||
> go get -u github.com/zhufuyi/pkg/logger
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
## 使用示例
|
## 使用示例
|
||||||
|
|
||||||
支持Debug、Info、Warn、Error、Panic、Fatal,也支持类似fmt.Printf打印日志,Debugf、Infof、Warnf、Errorf、Panicf、Fatalf
|
支持Debug、Info、Warn、Error、Panic、Fatal,也支持类似fmt.Printf打印日志,Debugf、Infof、Warnf、Errorf、Panicf、Fatalf
|
||||||
|
@@ -4,12 +4,6 @@
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
## 安装
|
|
||||||
|
|
||||||
> go get -u github.com/zhufuyi/pkg/mysql
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
## 使用示例
|
## 使用示例
|
||||||
|
|
||||||
### 初始化连接示例
|
### 初始化连接示例
|
||||||
|
@@ -24,8 +24,8 @@ func setETCDRegistry(etcdEndpoints []string) registry.Registry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func registryExample() {
|
func registryExample() {
|
||||||
// endpoint组成schema://ip,例如grpc://127.0.0.1:9090, http://127.0.0.1:8080
|
// endpoint组成schema://ip,例如grpc://127.0.0.1:8282, http://127.0.0.1:8080
|
||||||
endpoints:=[]string{"grpc://127.0.0.1:9090"}
|
endpoints:=[]string{"grpc://127.0.0.1:8282"}
|
||||||
serviceInstance := registry.NewServiceInstance("user", endpoints,
|
serviceInstance := registry.NewServiceInstance("user", endpoints,
|
||||||
//registry.WithID("1"), // 服务id,唯一编号
|
//registry.WithID("1"), // 服务id,唯一编号
|
||||||
//registry.WithVersion("v0.0.1"), // 服务版本
|
//registry.WithVersion("v0.0.1"), // 服务版本
|
||||||
|
@@ -16,7 +16,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestGRPCSeverRegistry(t *testing.T) {
|
func TestGRPCSeverRegistry(t *testing.T) {
|
||||||
instance := registry.NewServiceInstance("foo", []string{"grpc://127.0.0.1:9090"})
|
instance := registry.NewServiceInstance("foo", []string{"grpc://127.0.0.1:8282"})
|
||||||
|
|
||||||
cli, err := clientv3.New(clientv3.Config{
|
cli, err := clientv3.New(clientv3.Config{
|
||||||
Endpoints: []string{"192.168.3.37:2379"},
|
Endpoints: []string{"192.168.3.37:2379"},
|
||||||
|
@@ -9,9 +9,9 @@ import (
|
|||||||
|
|
||||||
"github.com/zhufuyi/sponge/pkg/registry"
|
"github.com/zhufuyi/sponge/pkg/registry"
|
||||||
|
|
||||||
"github.com/nacos-group/nacos-sdk-go/clients/naming_client"
|
"github.com/nacos-group/nacos-sdk-go/v2/clients/naming_client"
|
||||||
"github.com/nacos-group/nacos-sdk-go/common/constant"
|
"github.com/nacos-group/nacos-sdk-go/v2/common/constant"
|
||||||
"github.com/nacos-group/nacos-sdk-go/vo"
|
"github.com/nacos-group/nacos-sdk-go/v2/vo"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -82,7 +82,7 @@ func New(cli naming_client.INamingClient, opts ...Option) (r *Registry) {
|
|||||||
// Register the registration.
|
// Register the registration.
|
||||||
func (r *Registry) Register(_ context.Context, si *registry.ServiceInstance) error {
|
func (r *Registry) Register(_ context.Context, si *registry.ServiceInstance) error {
|
||||||
if si.Name == "" {
|
if si.Name == "" {
|
||||||
return fmt.Errorf("eagle/nacos: serviceInstance.name can not be empty")
|
return fmt.Errorf("nacos: serviceInstance.name can not be empty")
|
||||||
}
|
}
|
||||||
for _, endpoint := range si.Endpoints {
|
for _, endpoint := range si.Endpoints {
|
||||||
u, err := url.Parse(endpoint)
|
u, err := url.Parse(endpoint)
|
||||||
|
28
pkg/registry/nacos/registry_test.go
Normal file
28
pkg/registry/nacos/registry_test.go
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
package nacos
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/nacos-group/nacos-sdk-go/v2/clients"
|
||||||
|
"github.com/nacos-group/nacos-sdk-go/v2/vo"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestNew(t *testing.T) {
|
||||||
|
namingClient, err := clients.NewNamingClient(
|
||||||
|
vo.NacosClientParam{
|
||||||
|
ClientConfig: nil,
|
||||||
|
ServerConfigs: nil,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
assert.Error(t, err)
|
||||||
|
|
||||||
|
r := New(namingClient,
|
||||||
|
WithPrefix("/micro"),
|
||||||
|
WithWeight(1),
|
||||||
|
WithCluster("cluster"),
|
||||||
|
WithGroup("dev"),
|
||||||
|
WithDefaultKind("grpc"),
|
||||||
|
)
|
||||||
|
assert.NotNil(t, r)
|
||||||
|
}
|
@@ -6,9 +6,9 @@ import (
|
|||||||
|
|
||||||
"github.com/zhufuyi/sponge/pkg/registry"
|
"github.com/zhufuyi/sponge/pkg/registry"
|
||||||
|
|
||||||
"github.com/nacos-group/nacos-sdk-go/clients/naming_client"
|
"github.com/nacos-group/nacos-sdk-go/v2/clients/naming_client"
|
||||||
"github.com/nacos-group/nacos-sdk-go/model"
|
"github.com/nacos-group/nacos-sdk-go/v2/model"
|
||||||
"github.com/nacos-group/nacos-sdk-go/vo"
|
"github.com/nacos-group/nacos-sdk-go/v2/vo"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _ registry.Watcher = (*watcher)(nil)
|
var _ registry.Watcher = (*watcher)(nil)
|
||||||
@@ -39,7 +39,7 @@ func newWatcher(ctx context.Context, cli naming_client.INamingClient, serviceNam
|
|||||||
ServiceName: serviceName,
|
ServiceName: serviceName,
|
||||||
Clusters: clusters,
|
Clusters: clusters,
|
||||||
GroupName: groupName,
|
GroupName: groupName,
|
||||||
SubscribeCallback: func(services []model.SubscribeService, err error) {
|
SubscribeCallback: func(services []model.Instance, err error) {
|
||||||
w.watchChan <- struct{}{}
|
w.watchChan <- struct{}{}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
@@ -6,7 +6,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestNewServiceInstance(t *testing.T) {
|
func TestNewServiceInstance(t *testing.T) {
|
||||||
s := NewServiceInstance("demo", []string{"grpc://127.0.0.1:9090"},
|
s := NewServiceInstance("demo", []string{"grpc://127.0.0.1:8282"},
|
||||||
WithID("1"),
|
WithID("1"),
|
||||||
WithVersion("v1.0.0"),
|
WithVersion("v1.0.0"),
|
||||||
WithMetadata(map[string]string{"foo": "bar"}),
|
WithMetadata(map[string]string{"foo": "bar"}),
|
||||||
|
@@ -4,12 +4,6 @@
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
## 安装
|
|
||||||
|
|
||||||
> go get -u github.com/zhufuyi/pkg/tracer
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
## 使用示例
|
## 使用示例
|
||||||
|
|
||||||
初始化trace,指定exporter和resource。
|
初始化trace,指定exporter和resource。
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
serverName="sponge"
|
serverName="serverNameExample"
|
||||||
|
|
||||||
binaryFile="cmd/sponge/${serverName}"
|
binaryFile="cmd/${serverName}/${serverName}"
|
||||||
|
|
||||||
if [ -f "${serverName}" ] ;then
|
if [ -f "${serverName}" ] ;then
|
||||||
rm "${serverName}"
|
rm "${serverName}"
|
||||||
@@ -18,8 +18,7 @@ function checkResult() {
|
|||||||
sleep 0.2
|
sleep 0.2
|
||||||
|
|
||||||
# CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o ${serverName}
|
# CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o ${serverName}
|
||||||
#go build -o ${serverName}
|
go build -o ${binaryFile} cmd/${serverName}/main.go
|
||||||
go build -o ${binaryFile} cmd/sponge/main.go
|
|
||||||
checkResult $?
|
checkResult $?
|
||||||
|
|
||||||
# 运行服务
|
# 运行服务
|
||||||
|
14
test/server/nacos/docker-compose.yaml
Normal file
14
test/server/nacos/docker-compose.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
version: "3"
|
||||||
|
services:
|
||||||
|
nacos:
|
||||||
|
image: nacos/nacos-server:v2.1.1
|
||||||
|
container_name: nacos-standalone
|
||||||
|
environment:
|
||||||
|
- PREFER_HOST_MODE=hostname
|
||||||
|
- MODE=standalone
|
||||||
|
volumes:
|
||||||
|
- ./standalone-logs/:/home/nacos/logs
|
||||||
|
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
|
||||||
|
ports:
|
||||||
|
- "8848:8848"
|
||||||
|
- "9848:9848"
|
Reference in New Issue
Block a user