Thrift IDL
Thrift IDL
Thrift 是一个 RPC 框架,是典型的 C/S 架构,采用 IDL 来定义接口
基本数据类型
- bool: 布尔值 true or false
- byte: 有符号字节
- i16: 16位有符号整数
- i32: 32位有符号整数
- i64: 64位有符号整数
- double: 64位浮点数
- string: 编码无关字符串
- void: 返回为空
复合类型
struct
相当于 C 语言中的结构体和面向对象思想中的类,将多种数据类型整合起来
1 | struct User { |
注:
- optional 表示该字段可选
- requeired 表示该字段必填
- 序号不可以重复,但不是必须连续
enum
枚举类型
1 | enum UserType { |
容器
Thrift 提供了三种容器类型,list、map 和 set
- list
相当于 Java 中的 ArrayList - map<T1, T2> 相当于 Java 中的 HashMap
- set
相当于 Java 中的 HashSet
异常
Thrift 支持自定义异常
1 | exception NotFound { |
注:编写服务端代码时,除了在代码中抛出异常,还要在定义接口时,指明该接口可能抛出的异常
Service
类似于 Java 中的 interface
1 | service UserService { |
命名空间
1 | namespace [java/cpp/py] com.example.project |