thrift usage
RPC Server
Write IDL
// hello.thrift
namespace go hello.example
struct HelloReq {
1: string Name
}
struct HelloResp {
1: string RespBody;
}
service HelloService {
HelloResp HelloMethod(1: HelloReq request);
}
Execute Command
Note: If the project is located outside of GOPATH, gomod must be specified. GOPATH defaults to a path relative to GOPATH as the name, and gomod may not be specified.
cwgo server --type RPC --idl hello.thrift --service hellotest --module {{your_module_name}}
Generate Code
The directory structure of the generated code and the meanings of each file are shown in Layout.
HTTP Server
Write IDL
Write a simple IDL for generating HTTP Server, which requires adding api.$method
and api.base_domain
annotations are used to fill in uri
and host
, please refer to them for details Hertz IDL Annotation Description.
// hello.thrift
namespace go hello.example
struct HelloReq {
1: string Name (api.query="name");
}
struct HelloResp {
1: string RespBody;
}
service HelloService {
HelloResp HelloMethod(1: HelloReq request) (api.get="/hello1");
}(
api.base_domain="http://127.0.0.1:8888";
)
Execute Command
Note: If the project is located outside of GOPATH, gomod must be specified. GOPATH defaults to a path relative to GOPATH as the name, and gomod may not be specified.
cwgo server --type HTTP --idl hello.thrift --service hellotest --module {{your_module_name}}
Generate Code
The directory structure of the generated code and the meanings of each file are shown in Layout.
Last modified
March 1, 2024
: Update tutorial.md ,fixed an inconsistency (#986) (89c92e3)