github.com/vcilabs/webrpc@v0.5.2-0.20201116131534-162e27b1b33b/_examples/hello-webrpc-ts/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": "role",
    63            "type": "Kind",
    64            "optional": false
    65          },
    66          {
    67            "name": "createdAt",
    68            "type": "timestamp",
    69            "optional": true,
    70            "meta": [
    71              { "json": "created_at,omitempty" },
    72              { "go.tag.db": "created_at" }
    73            ]
    74          }
    75  
    76        ]
    77      }
    78    ],
    79    "services": [
    80      {
    81        "name": "ExampleService",
    82        "methods": [
    83          {
    84            "name": "Ping",
    85            "inputs": [],
    86            "outputs": [
    87              {
    88                "name": "",
    89                "type": "bool"
    90              }
    91            ]
    92          },
    93          {
    94            "name": "GetUser",
    95            "inputs": [
    96              {
    97                "name": "req",
    98                "type": "GetUserRequest"
    99              }
   100            ],
   101            "outputs": [
   102              {
   103                "name": "",
   104                "type": "User"
   105              }
   106            ]
   107          }
   108        ]
   109      }
   110    ]
   111  }