对于我们的许多服务,我们有大型的节俭IDL,其中的类型可以非常深入。但是,很难可视化各种类型的关联/嵌套方式。
什么是可视化各种节俭物体的对象图的最简单方法?有没有什么可以将节俭IDL类型转换为JSON漂亮的打印,例如?或IDE扩展,它可以显示类型层次结构的树形图?
答案 0 :(得分:2)
您可以尝试使用graphviz生成器。
thrift -gen gv <idlfile>
这是我之前用于其他目的的一个例子:
namespace * Testcase
struct BasicNeeds {
1 : optional double beerLiters = 1.23
2 : optional string beerName = "Heineken"
}
enum Steak {
Raw = 0,
Rare = 1,
Medium = 2,
WellDone = 3,
Coal = 4
}
enum Requirement {
SpeakMyLanguage = 0,
FreeCoffee = 1,
GoodService = 2,
TakeCreditCards = 3,
AllYouCanEat = 4
}
typedef list< Requirement> FurtherRequirements
struct TableSize {
1 : optional i32 Width = 20
2 : optional i32 Length = 40
}
struct PlaceOrder {
1 : required BasicNeeds BasicNeeds
2 : required Steak Kind = Steak.Medium
3 : optional FurtherRequirements FurtherRequirements
4 : bool FirstVisit = false
5 : optional TableSize Table
}
union OrderResult {
1 : bool Success
2 : bool SorryOutOfSteaks
3 : bool SorryClosed
4 : double UnpaidBillFromLastVisit
}
exception DinerError {
1 : string Msg
}
service Diner {
OrderResult PlaceOrder( 1 : PlaceOrder request) throws ( 1: DinerError rex),
OrderResult PlaceOrder2( 1 : PlaceOrder request, 2: i32 numberOfSteaks) throws ( 1: DinerError rex),
PlaceOrder TryReversed( 1 : OrderResult request)
}