API ΞΫηεͳ͠ͰαʔϏεΛ࡞Εͣ
୭͕ API αʔόʔͱΫϥΠΞϯτͷ྆ํΛ࡞Δ
େ API ࣌
Slide 5
Slide 5 text
API αʔόʔΛ࡞Δͱ͖
ϓϥΫςΟεཱ͕֬͞Ε͍ͯΔ
Slide 6
Slide 6 text
ҰํɺΫϥΠΞϯτΛ࡞Δͱ͖
Slide 7
Slide 7 text
ҰํɺΫϥΠΞϯτΛ࡞Δͱ͖
Slide 8
Slide 8 text
ҰํɺΫϥΠΞϯτΛ࡞Δͱ͖
API ΫϥΠΞϯτͷ࡞Γํ
ඞͣ͠ཧ͞Ε͍ͯͳ͍
Slide 9
Slide 9 text
ྡͷ API ͷσʔλΛ
Rails Β͘͠ɺ͠ͳ͔ʹѻ͏
͍͍ײ͡ͷ API ΫϥΠΞϯτͷ࡞Γ͔ͨ
Slide 10
Slide 10 text
ʮ͍͍ײ͡ͷ API ΫϥΠΞϯτͷ࡞Γํʯ
ΫοΫύουͰ͋Γ͕ͪͳࡐΛྫʹ
έʔεελσΟͯ͠ΈΑ͏
Slide 11
Slide 11 text
ͲͷΑ͏ͳ Ruby ΠϯλʔϑΣʔεʹ͢Δ͔ʁ
Ϩγϐίϯςετͷ microservice ͷྫ
User
(MySQL)
Recipe
Contest
(MySQL)
Recipe
(API)
Recipe
ContestEntry
(MySQL)
N
1
N
1
N
1
1
1
Slide 12
Slide 12 text
• ҟͳΔιʔεछผͷ en
ti
ty
ҟͳΔऔಘํࣜΛఏڙ͢Δ
• MySQL ༝དྷ AR::Base Λ
ܧঝ͢ΔΫϥεͰදݱ
• ֎෦༝དྷผͷΫϥεͰදݱ
(i.e. AR::Base Λܧঝ͠ͳ͍)
(1) ιʔεͷछผʹண͢Δ
User
(MySQL)
Recipe
Contest
(MySQL)
Recipe
(API)
Recipe
ContestEntry
(MySQL)
N
1
N
1
N
1
1
1
• ಉҰͷυϝΠϯͷ en
ti
ty
ಉҰͷऔಘํ๏Λఏڙ͢Δ
• ΞϓϦͷυϝΠϯ্ͳΒ
ͯ͢ Ac
ti
veRecord-like ͳ
औಘํࣜΛఏڙ͢Δ
(2) υϝΠϯڥքʹண͢Δ
Tweet
(API)
User
(MySQL)
Recipe
Contest
(MySQL)
Recipe
(API)
Recipe
ContestEntry
(MySQL)
1
N
1
N
1
1
Slide 18
Slide 18 text
ਓྨͷྺ࢙: ActiveResource, Her, ...
• Ac
ti
veResource
• RESTful API Λ͍͍ײ͡ʹ model ͬΆͯ͘͘͠ΕΔ
• Rails 3.2 ·Ͱͷඪ४ػೳͩͬͨ
• Her
• ͜Εಉ͡Α͏ͳతͷ Gem
• ΄͔ʹ Ac
ti
veRestClient, Spyke, Flexirest ͳͲ͕͋Δ
མͪึͻΖ͍ɾࡉ͔͍
Others
• AR ෩ͷΦϒδΣΫτΛ༻ҙ͢ΔʹͤΑɺescape hatch ༻ҙͨ͠΄͏͕͍͍
• Ac
ti
veModel::Model ʹ͍ͭͯ
• ͓ΈͰ include ͢ΔͱΑ͍Ͱ͠ΐ͏
• valida
ti
on callbacks, rou
ti
ng ͳͲʹؔ࿈͢Δαϙʔτ͕͍͖ͭͯ·͢
• cookpad/expeditor ͰߋͳΔߴԽΛૂ͏