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