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 {}