github.com/yoogoc/kratos-scaffold@v0.0.0-20240402032722-a538b3c18955/generator/tmpl/proto.tmpl (about) 1 {{- /*gotype: github.com/yoogoc/kratos-scaffold/generator.Proto*/ -}} 2 syntax = "proto3"; 3 package {{.Package}}; 4 option go_package = "{{.GoPackage}}"; 5 option java_multiple_files = true; 6 option java_package = "{{.JavaPackage}}"; 7 {{ range $i, $pi := .Fields.ProtoImports }} 8 import "{{ $pi }}"; 9 {{- end }} 10 {{- if .GenHttp}} 11 import "google/api/annotations.proto"; 12 {{- end }} 13 14 service {{.Name}}Service { 15 rpc Create (Create{{.Name}}Request) returns (Create{{.Name}}Reply){{- if .GenHttp }} { 16 option (google.api.http) = { 17 post: "/api/v1/{{.Name | ToPlural | fieldStyle }}" 18 body: "*" 19 }; 20 }{{- end }}; 21 rpc Update (Update{{.Name}}Request) returns (Update{{.Name}}Reply){{- if .GenHttp }} { 22 option (google.api.http) = { 23 put: "/api/v1/{{.Name | ToPlural | fieldStyle }}/{{ .PrimaryFieldURLName }}" 24 body: "*" 25 }; 26 }{{- end }}; 27 {{- if .GenHttp }} 28 rpc Destroy (Destroy{{.Name}}Request) returns (Destroy{{.Name}}Reply){{- if .GenHttp }} { 29 option (google.api.http) = { 30 delete: "/api/v1/{{.Name | ToPlural | fieldStyle }}/{{ .PrimaryFieldURLName }}" 31 }; 32 }{{- end }}; 33 rpc Get (Get{{.Name}}Request) returns (Get{{.Name}}Reply){{- if .GenHttp }} { 34 option (google.api.http) = { 35 get: "/api/v1/{{.Name | ToPlural | fieldStyle }}/{{ .PrimaryFieldURLName }}" 36 }; 37 }{{- end }}; 38 {{- else }} 39 rpc DestroyBy (Destroy{{.Name}}ByRequest) returns (Destroy{{.Name}}ByReply); 40 rpc FindBy (Find{{.Name}}ByRequest) returns (Find{{.Name}}ByReply); 41 {{- end }} 42 rpc List (List{{.Name}}Request) returns (List{{.Name}}Reply){{- if .GenHttp }} { 43 option (google.api.http) = { 44 get: "/api/v1/{{.Name | ToPlural | fieldStyle }}" 45 }; 46 }{{- end }}; 47 } 48 49 message {{.Name}} { 50 {{- range $i, $f := .Fields }} 51 {{ $f.FieldType.StringProto }} {{ $f.Name | fieldStyle }} = {{ add $i 1 }}; 52 {{- end }} 53 } 54 message Create{{.Name}}Request { 55 {{- range $i, $f := .CreateFields }} 56 {{ $f.FieldType.StringProto }} {{ $f.Name | fieldStyle }} = {{ add $i 1 }}; 57 {{- end }} 58 } 59 message Create{{.Name}}Reply { 60 {{.Name}} {{.Name | fieldStyle }} = 1; 61 } 62 message Update{{.Name}}Request { 63 {{ .PrimaryField.FieldType.StringProto }} {{ .PrimaryFieldName | fieldStyle }} = 1; 64 {{- range $i, $f := .UpdateFields }} 65 {{ $f.FieldType.StringProto }} {{ $f.Name | fieldStyle }} = {{ add $i 2 }}; 66 {{- end }} 67 } 68 message Update{{.Name}}Reply { 69 {{.Name}} {{.Name | fieldStyle }} = 1; 70 } 71 {{$primaryField := .PrimaryField }} 72 {{- if .GenHttp }} 73 message Destroy{{.Name}}Request { 74 {{ $primaryField.FieldType.StringProto }} {{ $primaryField.Name | fieldStyle }} = 1; 75 } 76 message Destroy{{.Name}}Reply {} 77 message Get{{.Name}}Request { 78 {{ $primaryField.FieldType.StringProto }} {{ $primaryField.Name | fieldStyle }} = 1; 79 } 80 message Get{{.Name}}Reply { 81 {{.Name}} {{.Name | fieldStyle }} = 1; 82 } 83 {{- else }} 84 message Destroy{{.Name}}ByRequest { 85 {{.Name}}Param param = 1; 86 } 87 message Destroy{{.Name}}ByReply { 88 int32 count = 1; 89 } 90 message Find{{.Name}}ByRequest { 91 {{.Name}}Param param = 1; 92 } 93 message Find{{.Name}}ByReply { 94 {{.Name}} {{.Name | fieldStyle }} = 1; 95 } 96 {{- end }} 97 message {{.Name}}Param { 98 {{- $strToPreMap := .StrToPreMap}} 99 {{- range $i, $f := .Fields.ParamFields }} 100 {{ if eq $f.Type $strToPreMap.in }}{{ "repeated " }}{{ $f.FieldType.StringProto }}{{- else }}{{ $f.FieldType.StringProtoParam }}{{- end }} {{ $f.Name | fieldStyle }} = {{ add $i 1 }}; 101 {{- end }} 102 } 103 message List{{.Name}}Request { 104 uint32 {{.PageParamName}} = 1; 105 uint32 {{.PageSizeParamName}} = 2; 106 {{.Name}}Param param = 3; 107 } 108 message List{{.Name}}Reply { 109 repeated {{.Name}} {{.Name | ToPlural | fieldStyle }} = 1; 110 uint32 count = 2; 111 }