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  }