github.com/vcilabs/webrpc@v0.5.2-0.20201116131534-162e27b1b33b/_examples/hello-webrpc/hello-api.webrpc.json (about)

     1  {
     2    "webrpc": "v1",
     3    "name": "hello-api",
     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    "services": [
    75      {
    76        "name": "ExampleService",
    77        "methods": [
    78          {
    79            "name": "Ping",
    80            "inputs": [],
    81            "outputs": [
    82              {
    83                "name": "",
    84                "type": "bool"
    85              }
    86            ]
    87          },
    88          {
    89            "name": "GetUser",
    90            "inputs": [
    91              {
    92                "name": "req",
    93                "type": "GetUserRequest"
    94              }
    95            ],
    96            "outputs": [
    97              {
    98                "name": "",
    99                "type": "User"
   100              }
   101            ]
   102          }
   103        ]
   104      }
   105    ]
   106  }