IDL 注解说明
支持的 api 注解
Field 注解可用于 参数绑定及校验
Method 注解可用于生成路由注册相关代码
支持的 api 注解
Field 注解 | |
---|---|
注解 | 说明 |
api.raw_body | 生成 “raw_body” tag |
api.query | 生成 “query” tag |
api.header | 生成 “header” tag |
api.cookie | 生成 “cookie” tag |
api.body | 生成 “json” tag |
api.path | 生成 “path” tag |
api.form | 生成 “form” tag |
api.go_tag (protobuf) go.tag (thrift) |
透传 go_tag,会生成 go_tag 里定义的内容 |
api.vd | 生成 “vd” tag |
Method 注解 | |
---|---|
注解 | 说明 |
api.get | 定义 GET 方法及路由 |
api.post | 定义 POST 方法及路由 |
api.put | 定义 PUT 方法及路由 |
api.delete | 定义 DELETE 方法及路由 |
api.patch | 定义 PATCH 方法及路由 |
api.options | 定义 OPTIONS 方法及路由 |
api.head | 定义 HEAD 方法及路由 |
api.any | 定义 ANY 方法及路由 |
使用方法
Field 注解
Thrift:
struct Demo {
1: string Demo (api.query="demo", api.path="demo");
2: string GoTag (go.tag="goTag:\"tag\"");
3: string Vd (api.vd="$!='your string'");
}
Protobuf:
message Demo {
string Demo = 1[(api.query)="demo",(api.path)="demo"];
string GoTag = 2[(api.go_tag)="goTag:"tag""];
string Vd = 3[(api.vd)="$!='your string'"];
}
Method 注解
Thrift:
service Demo {
Resp Method(1: Req request) (api.get="/route");
}
Protobuf:
service Demo {
rpc Method(Req) returns(Resp) {
option (api.get) = "/route";
}
}
最后修改
August 2, 2023
: docs: add document http3 (#737) (5cdb2f3)