github.com/vcilabs/webrpc@v0.5.2-0.20201116131534-162e27b1b33b/_examples/golang-basics/example.webrpc.json (about) 1 { 2 "webrpc": "v1", 3 "name": "example", 4 "version": "v0.0.1", 5 "messages": [ 6 { 7 "name": "Kind", 8 "type": "enum", 9 "fields": [ 10 { 11 "name": "USER", 12 "type": "uint32", 13 "value": "0" 14 }, 15 { 16 "name": "ADMIN", 17 "type": "uint32", 18 "value": "1" 19 } 20 ] 21 }, 22 { 23 "name": "Empty", 24 "type": "struct", 25 "fields": [ 26 ] 27 }, 28 { 29 "name": "User", 30 "type": "struct", 31 "fields": [ 32 { 33 "name": "ID", 34 "type": "uint64", 35 "optional": false, 36 "meta": [ 37 { "json": "id" }, 38 { "go.tag.db": "id" } 39 ] 40 }, 41 { 42 "name": "username", 43 "type": "string", 44 "optional": false, 45 "meta": [ 46 { "json": "USERNAME" }, 47 { "go.tag.db": "username" } 48 ] 49 }, 50 { 51 "name": "role", 52 "type": "string", 53 "optional": false, 54 "meta": [ 55 { "go.tag.db": "-" } 56 ] 57 }, 58 { 59 "name": "createdAt", 60 "type": "timestamp", 61 "optional": true, 62 "meta": [ 63 { "json": "created_at" }, 64 { "go.tag.json": "created_at,omitempty" }, 65 { "go.tag.db": "created_at" } 66 ] 67 } 68 69 ] 70 }, 71 { 72 "name": "ComplexType", 73 "type": "struct", 74 "fields": [ 75 { 76 "name": "meta", 77 "type": "map<string,any>" 78 }, 79 { 80 "name": "metaNestedExample", 81 "type": "map<string,map<string,uint32>>" 82 }, 83 { 84 "name": "namesList", 85 "type": "[]string" 86 }, 87 { 88 "name": "numsList", 89 "type": "[]int64" 90 }, 91 { 92 "name": "doubleArray", 93 "type": "[][]string" 94 }, 95 { 96 "name": "listOfMaps", 97 "type": "[]map<string,uint32>" 98 }, 99 { 100 "name": "listOfUsers", 101 "type": "[]User" 102 }, 103 { 104 "name": "mapOfUsers", 105 "type": "map<string,User>" 106 }, 107 { 108 "name": "user", 109 "type": "User" 110 } 111 ] 112 } 113 ], 114 "services": [ 115 { 116 "name": "ExampleService", 117 "methods": [ 118 { 119 "name": "Ping", 120 "inputs": [], 121 "outputs": [] 122 }, 123 { 124 "name": "Status", 125 "inputs": [], 126 "outputs": [ 127 { 128 "name": "status", 129 "type": "bool" 130 } 131 ] 132 }, 133 { 134 "name": "GetUser", 135 "inputs": [ 136 { 137 "name": "header", 138 "type": "map<string,string>" 139 }, 140 { 141 "name": "userID", 142 "type": "uint64" 143 } 144 ], 145 "outputs": [ 146 { 147 "name": "code", 148 "type": "uint32" 149 }, 150 { 151 "name": "user", 152 "type": "User" 153 } 154 ] 155 } 156 ] 157 } 158 ] 159 }