trpc.group/trpc-go/trpc-cmdline@v1.0.9/util/apidocs/testcase/hello.proto (about)

     1  // Tencent is pleased to support the open source community by making tRPC available.
     2  //
     3  // Copyright (C) 2023 THL A29 Limited, a Tencent company.
     4  // All rights reserved.
     5  //
     6  // If you have downloaded a copy of the tRPC source code from Tencent,
     7  // please note that tRPC source code is licensed under the  Apache 2.0 License,
     8  // A copy of the Apache 2.0 License is included in this file.
     9  
    10  syntax = "proto3";
    11  
    12  package helloworld;
    13  
    14  option go_package="trpc.group/examples/helloworld";
    15  
    16  import "trpc/api/annotations.proto";
    17  
    18  service Hello {
    19      // 导入用户
    20      rpc ImportMembers(ImportMembersReq) returns (ImportMembersReply) {
    21          option (trpc.api.http) = {
    22              post: "/v1/members/import"
    23              body: "*"
    24  
    25              additional_bindings: {
    26                  post: "/v1/{domain.type}/members/import"
    27                  body: "*"
    28              }
    29          };
    30      }
    31  
    32      // 添加成员,支持批量添加
    33      rpc SearchMembers(SearchMembersReq) returns (SearchMembersReply) {
    34          option (trpc.api.http) = {
    35              get: "/v1/members"
    36  
    37              additional_bindings: {
    38                  get: "/v1/{domain.type=school}/members"
    39              }
    40          };
    41      }
    42  
    43      // 移除成员,支持批量移除
    44      rpc RemoveMembers(RemoveMembersReq) returns (RemoveMembersReply) {
    45          option (trpc.api.http) = {
    46              delete: "/v1/members"
    47          };
    48      }
    49  }
    50  
    51  
    52  message Domain {
    53      uint32 id = 1;
    54      string type = 2;
    55  }
    56  
    57  message ImportMembersReq {
    58      Domain domain = 1;
    59      string url = 2;
    60  }
    61  
    62  message ImportMembersReply {}
    63  
    64  enum TYPE {
    65      A = 0;
    66      B = 1;
    67  }
    68  
    69  message SearchMembersReq {
    70      Domain domain = 1;
    71      uint32 page = 2;
    72      uint32 page_size = 3;
    73      TYPE t =4;
    74  }
    75  
    76  message SearchMembersReply {
    77      message Member {
    78          uint32 id = 1;
    79      }
    80  
    81      uint32 total = 1;
    82      repeated Member members = 2;
    83  }
    84  
    85  message RemoveMembersReq {
    86      repeated uint32 ids = 1;
    87  }
    88  
    89  message RemoveMembersReply {}