: c r e a t e _ s a m p l e ) { u r l ' / s a m p l e / c r e a t e ' m e t h o d ' P O S T ' r e q u e s t { p a r a m ' i d ' , : i n t , ' I D ' p a r a m ' n a m e ' , : s t r i n g , ' 素敵な名前' } r e s p o n s e { p a r a m ' s a m p l e ' , : s a m p l e , ' 作成したさんぷる' } }
u m e n t . e a c h _ r p c d o | r p c | ‐ % > m o d u l e < % = r p c . n a m e . c a m e l i z e % > c l a s s R e q u e s t < T y p e : : B a s e < % ‐ r p c . r e s p o n s e . p a r a m s . e a c h d o | p a r a m | ‐ % > a t t r i b u t e < % = p a r a m . n a m e % > , < % = p a r a m . t y p e % > < % ‐ e n d ‐ % > e n d c l a s s R e s p o n s e < T y p e : : B a s e < % ‐ r p c . r e s p o n s e . p a r a m s . e a c h d o | p a r a m | ‐ % > a t t r i b u t e < % = p a r a m . n a m e % > , < % = p a r a m . t y p e % > < % ‐ e n d ‐ % > e n d e n d < % ‐ e n d ‐ % >
m p l e : : C r e a t e c l a s s R e q u e s t < T y p e : : B a s e a t t r i b u t e : i d , I n t e g e r a t t r i b u t e : n a m e , S t r i n g e n d c l a s s R e s p o n s e < T y p e : : B a s e a t t r i b u t e : s a m p l e , T y p e : : S a m p l e e n d e n d
y p e : : S a m p l e . n e w ( i d : 1 , n a m e : ' f o o ' ) r e s p o n s e = S a m p l e : : C r e a t e : : R e s p o n s e . n e w ( s a m p l e : s a m p l e ) r e s p o n d _ t o d o | f o r m a t | f o r m a t . m s g p a c k ( b o d y : r e s p o n s e . t o _ m s g p a c k ) e n d 生成された型を使ってMessagePack でシリアライズ・ デシリアラ イズをする Contract からコー ドを自動生成するメリット 各言語のテンプレー トを用意することで、 異なる言語間での型 の違いなどを吸収しやすい 開発効率の上昇 インター フェー スのドキュメント化