Thrift manual

1 篇文章 0 订阅
1 篇文章 0 订阅

Thrift manual

我的github pages 地址:https://alexanderwangsgithub.github.io/

Install

brew install thrift

Grammer

namespace

As same as “package” in Java.
namespace java resource.thrift.sdk.hermes

结合mv,管理路径。

Primary

  • byte: 有符号字节
  • i16: 16位有符号整数
  • i32: 32位有符号整数
  • i64: 64位有符号整数
  • double: 64位浮点数
  • string: 字符串

Collection

Element in collection can be any types except service.

  • list
  • set
  • map

Enum

enum THermesTemplateVerifyStatus {
    PENDING = 0
    SUCCESS = 1
    FAIL = 2
}

Struct

struct THermesUserReply {
    1: required i64 id
    2: required string phone_number
    3: required Timestamp reply_time
    4: required string message
}

会生成一个同名class(Java Bean)
bool/byte/i16/i32/i64/double/enum类型的处理逻辑
[required属性字段]转为原生类型:boolean/byte/short/int/long/double/int
[optional属性字段]转为装箱类型:Boolean/Byte/Short/Integer/Long/Double/Integer
[default属性字段]转为装箱类型:Boolean/Byte/Short/Integer/Long/Double/Integer
如服务端实现中有特殊逻辑,可以在和服务方确认逻辑后手动修改类型
Thrift中每个字段都会生成一个private字段,一个public getter,一个public setter
生成的每个字段都会打上@Index(index)注解
字段不支持默认值

Service

service HermesService {

    bool ping()
        throws (1: HermesUserException user_exception,
                2: HermesSystemException system_exception,
                3: HermesUnknownException unknown_exception),

Exception

exception HermesUnknownException {
    1: required HermesErrorCode error_code,
    2: required string error_name,
    3: required string message,
}

Generate

thrift -gen java hermes.thrift

Tutorial

tutorial

基础使用教程

基础使用教2

Java版的各种Thrift server实现的比较

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值