Slide 1

Slide 1 text

GMO Pepabo, Inc. Kenichi TAKAHASHI 2015/02/25 Ruby Business User Conference 2015 ݱ࣮ੈքͷ +40/)ZQFS4DIFNB

Slide 2

Slide 2 text

ߴڮ݈Ұ!LFODIBO (.0ϖύϘגࣜձࣾ ٕज़෦ٕज़ج൫νʔϜ IUUQTIVDSFBNOFU

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

ࠓ೔ͷ͓࿩  +40/)ZQFS4DIFNBͱ͸  ϖύϘͱ+40/)ZQFS4DIFNB  ͓·͚

Slide 6

Slide 6 text

+40/ )ZQFS4DIFNB ͱ͸

Slide 7

Slide 7 text

+40/4DIFNB  +40/ͷσʔλߏ଄Λఆٛ͢Δ  +40/4DIFNB$PSF  +40/4DIFNB7BMJEBUJPO  ࠷৽൛͸ESBGU

Slide 8

Slide 8 text

+40/)ZQFS4DIFNB  +40/4DIFNBʹ+40/ΛϋΠύʔ ςΩετͱͯ͠ղऍͰ͖ΔΑ͏ʹ͢ ΔͨΊͷΩʔϫʔυΛ௥Ճͨ͠΋ͷ

Slide 9

Slide 9 text

+40/)ZQFS4DIFNBͰग़དྷΔࣄ  +40/4DIFNBΛ࢖ͬͯ"1*ͷΤϯ υϙΠϯτΛఆٛ͢Δ  ϦΫΤετɺϨεϙϯεͷόϦσʔγϣϯ  υΩϡϝϯτੜ੒  ΫϥΠΞϯτੜ੒  ςετ༻ελϒαʔόͷੜ੒

Slide 10

Slide 10 text

αʔϏεσΟεΫϦϓγϣϯ  84%-  +40/)ZQFS4DIFNB  "1*#MVFQSJOU  3".-

Slide 11

Slide 11 text

http://d.hatena.ne.jp/tkawa/20140828/p1

Slide 12

Slide 12 text

ϖύϘͱ +40/ )ZQFS4DIFNB

Slide 13

Slide 13 text

 ͭͷαʔϏεͰಋೖ४උத  Χϥʔϛʔγϣοϓ"1*  46;63* ϖύϘͱ+40/)ZQFS4DIFNB

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

ಋೖ͢Δૂ͍  "1*Λ࢖͏ਓ  ࣮૷ͱဃ཭͍ͯ͠ͳ͍υΩϡϝϯτ  ΫϥΠΞϯτϥΠϒϥϦͰ؆୯ʹར༻  ΧελϚʔαϙʔτͷෛ୲ܰݮ  ։ൃޮ཰ͷ޲্  ΤϯυϙΠϯτͷ࢓༷Λத৺ʹٞ࿦  ελϒͰ"1*։ൃ͕ϘτϧωοΫʹͳΒͳ͍

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

ಋೖεςοϓ  Ϩεϙϯε+40/ͷ4DIFNBΛॻ͘  +40/)ZQFS4DIFNBʹ͢Δ  ࣗಈͰόϦσʔγϣϯΛ͔͚ΔΑ͏ʹ͢Δ  υΩϡϝϯτੜ੒ʹඞཁͳ৘ใΛ௥ه͢Δ  υΩϡϝϯτΛੜ੒ɺެ։͢Δ  +40/)ZQFS4DIFNBΛެ։͢Δ  ΫϥΠΞϯτϥΠϒϥϦΛ഑෍͢Δ

Slide 18

Slide 18 text

ಋೖεςοϓ  Ϩεϙϯε+40/ͷ4DIFNBΛॻ͘  +40/)ZQFS4DIFNBʹ͢Δ  ࣗಈͰόϦσʔγϣϯΛ͔͚ΔΑ͏ʹ͢Δ  υΩϡϝϯτੜ੒ʹඞཁͳ৘ใΛ௥ه͢Δ  υΩϡϝϯτΛੜ੒ɺެ։͢Δ  +40/)ZQFS4DIFNBΛެ։͢Δ  ΫϥΠΞϯτϥΠϒϥϦΛ഑෍͢Δ

Slide 19

Slide 19 text

+40/4DIFNBΛॻ͘  Ϧιʔεຖʹ+40/4DIFNBΛ࡞Δ  \SFTPVSDF^JEKTPOΛϕʔεʹ  IUUQKTPOTDIFNBOFU  +40/UP+40/4DIFNB  ղऍ΍ग़ྗͷΦϓγϣϯ͕બ୒Ͱ͖Δ  FOVNɺSFRVJSFEɺBEEJUJPOBMQSPQFSUJFT FUD  Ϧετͷղऍͷڍಈ͸஫ҙ  45*΍ϙϦϞʔϑΟοΫؔ࿈Λ࢖͍ͬͯΔ৔߹ʹ໰୊ʹ

Slide 20

Slide 20 text

͏·͍͔͘ͳ͍ྫ { "payment_methods": [ { "category": "creadit_card", "gateway": "gmo-pg" }, { "category": "bank", "name": "mizuho" } ] } { … "properties": { "payment_method": { "id": "payment_method", "type": "array", "items": { "id": "1", "type": "object", "properties": { "category": { "id": "category", "type": "string" }, "name": { "id": "name", "type": "string" } } } } } } HBUFXBZͱ͍͏ ϓϩύςΟ͕ͳ͔ͬͨ͜ͱʹ

Slide 21

Slide 21 text

IUUQTHJUVCDPNLFODIBOTDIFNJ[F $ cat payments.json | bundle exec schemize --- schema: type: object properties: payment_method: type: array items: type: object properties: category: type: string gateway: type: string name: type: string

Slide 22

Slide 22 text

IUUQTHJUVCDPNLFODIBOTDIFNJ[F  ඪ४ೖྗΛಡΉ  DVSMͰ࣮σʔλΛ؆୯ʹྲྀ͠ࠐΊΔ  Ϧετ಺ͷϓϩύςΟΛશͯྻڍ  ඍົͳߏ଄ɺ45*ɺϙϦϞʔϑΟοΫؔ࿈ʹରԠ  :".-ܗࣜͷग़ྗ  ޙड़͢Δπʔϧͷ΄ͱΜͲ͸:".-ΛಡΊΔ  +40/ΑΓ͸ਓ͕ؒฤू͠΍͍͢

Slide 23

Slide 23 text

ಋೖεςοϓ  Ϩεϙϯε+40/ͷ4DIFNBΛॻ͘  +40/)ZQFS4DIFNBʹ͢Δ  ࣗಈͰόϦσʔγϣϯΛ͔͚ΔΑ͏ʹ͢Δ  υΩϡϝϯτੜ੒ʹඞཁͳ৘ใΛ௥ه͢Δ  υΩϡϝϯτΛੜ੒ɺެ։͢Δ  +40/)ZQFS4DIFNBΛެ։͢Δ  ΫϥΠΞϯτϥΠϒϥϦΛ഑෍͢Δ

Slide 24

Slide 24 text

+40/)ZQFS4DIFNB  +40/4DIFNBʹ+40/ΛϋΠύʔ ςΩετͱͯ͠ղऍͰ͖ΔΑ͏ʹ͢ ΔͨΊͷΩʔϫʔυʮMJOLʯͳͲΛ ௥Ճͨ͠΋ͷ  $36% MJTUΛத৺ʹߟ͍͑ͯ͘

Slide 25

Slide 25 text

+40/)ZQFS4DIFNB  MJOL৘ใ  EFTDSJQUJPO  SFM  ISFG  NFUIPE  UJUMF

Slide 26

Slide 26 text

γϯϓϧͳMJOL schema: ! … ! links: - description: all payment methods href: /v1/payment_methods.json method: GET rel: instances title: payment_methods

Slide 27

Slide 27 text

ෳࡶͳMJOL  ϨεϙϯεͷεΩʔϚ͕ݸผʹҧ͏  ϖʔδωʔγϣϯͷͨΊͷϝλσʔλ  ϦΫΤετͷόϦσʔγϣϯ  (&5ύϥϝʔλ  ϦΫΤετ#PEZ

Slide 28

Slide 28 text

MJOLຖʹεΩʔϚΛఆٛ schema: ! … ! links: - description: all payment methods href: /v1/payment_methods.json method: GET rel: instances title: payment_methods targetSchema: type: object properties: payment_methods: type: array items: type: object $ref: "/schemata/payment_methods/#" meta: type: object properties: page: type: integer SFGͰผͷ৔ॴͰఆٛͨ͠ εΩʔϚΛಡΈࠐΉ UBSHFU4DIFNBͰϨεϙϯεͷ εΩʔϚΛࢦఆ͢Δ

Slide 29

Slide 29 text

ಋೖεςοϓ  Ϩεϙϯε+40/ͷ4DIFNBΛॻ͘  +40/)ZQFS4DIFNBʹ͢Δ  ࣗಈͰόϦσʔγϣϯΛ͔͚ΔΑ͏ʹ͢Δ  υΩϡϝϯτੜ੒ʹඞཁͳ৘ใΛ௥ه͢Δ  υΩϡϝϯτΛੜ੒ɺެ։͢Δ  +40/)ZQFS4DIFNBΛެ։͢Δ  ΫϥΠΞϯτϥΠϒϥϦΛ഑෍͢Δ

Slide 30

Slide 30 text

+40/4DIFNBͰόϦσʔγϣϯ  ର৅ͷ؀ڥ  UFTU EFWFMPQNFOU QSPEVDUJPO  όϦσʔγϣϯΤϥʔͷͱ͖  αʔόΤϥʔɺϩάग़ྗ  ϦΫΤετͱϨεϙϯε

Slide 31

Slide 31 text

ϥΠϒϥϦ  )FSPLVϓϩμΫτ  IUUQTHJUIVCDPNJOUFSBHFOU  SLBNVSBϓϩμΫτ  IUUQSLBNVSBIBUFOBCMPHDPN FOUSZ  ͦͷଞ  IUUQTHJUIVCDPNTFPNP[JOUFSQPM

Slide 32

Slide 32 text

)FSPLV  QSNE  +40/4DIFNB݁߹ɺυΩϡϝϯτੜ੒  DPNNJUUFF  όϦσʔγϣϯɺελϒαʔό  IFSPJDT  ΫϥΠΞϯτੜ੒

Slide 33

Slide 33 text

SLBNVSB  +EPD  υΩϡϝϯτੜ੒  SBDLKTPO@TDIFNB  όϦσʔγϣϯɺελϒαʔόɺFUDʜ  +TPOJTN  ΫϥΠΞϯτੜ੒

Slide 34

Slide 34 text

ͦͷଞ  TFPNP[JOUFSQPM  υΩϡϝϯτੜ੒  όϦσʔγϣϯ  ελϒαʔό

Slide 35

Slide 35 text

ϖύϘͰ͸  Χϥʔϛʔγϣοϓ"1*  JOUFSQPMΛಋೖ͕ͨ͠ఫୀத  QSNE  SBDLKTPO@TDIFNBcDPNNJUUFF   46;63*  QSNE DPNNJUUFF

Slide 36

Slide 36 text

*OUFSQPMΛࢼͯ͠Έͯ  ελϒαʔό͸ॊೈ  JOUFSQPM͸ελϒͰฦ͢+40/Λࣗ෼Ͱఆٛ  ଞ͸εΩʔϚ಺ͷFYBNQMFΛ࢖͏  +40/4DIFNBͷόʔδϣϯ͕ݹ͍  JOUFSQPM͸ESBGUͰBOZ0GͳͲ͕࢖͑ͳ͍  ᐆດͳΤϯυϙΠϯτΛ۠ผͰ͖ͳ͍  VTFSTJEKTPOͱVTFSTTUBUTKTPO  ϑϧελοΫݫ͍͠

Slide 37

Slide 37 text

ࠓ͔Β࢝ΊΔͳΒ  QSNE͔Β࢝ΊΔ  +40/4DIFNBͷ݁߹ʹ͸࢖͑Δ  ബ͍ϥΠϒϥϦΛ࢖͏  த৺͸+40/4DIFNB  ϥΠϒϥϦͷিಥʹ஫ҙ  KTPOTDIFNBͱKTPO@TDIFNB

Slide 38

Slide 38 text

ςετͷ͓ڙʹ  LFODIBOSTQFDIUUQ@EFGBVMU@IFBEFS  SFRFVTUTQFDͰ)551ϔομΛ؆୯ʹ
 ෇͚Δ  "DDFQUBQQMJDBUJPOKTPO  "VUIPSJ[BUJPOZPVSPBVUIUPLFO

Slide 39

Slide 39 text

STQFDIUUQ@EFGBVMU@IFBEFS

Slide 40

Slide 40 text

+40/4DIFNBͰόϦσʔγϣϯ  ର৅ͷ؀ڥ  UFTUPSEFWFMPQNFOU  όϦσʔγϣϯΤϥʔͷͱ͖  αʔόΤϥʔ  ϦΫΤετͱϨεϙϯε  ·ͣ͸Ϩεϙϯε  ϦΫΤετ͸طଘͷόϦσʔγϣϯͰ

Slide 41

Slide 41 text

ಋೖεςοϓ  Ϩεϙϯε+40/ͷ4DIFNBΛॻ͘  +40/)ZQFS4DIFNBʹ͢Δ  ࣗಈͰόϦσʔγϣϯΛ͔͚ΔΑ͏ʹ͢Δ  υΩϡϝϯτੜ੒ʹඞཁͳ৘ใΛ௥ه͢Δ  υΩϡϝϯτΛੜ੒ɺެ։͢Δ  +40/)ZQFS4DIFNBΛެ։͢Δ  ΫϥΠΞϯτϥΠϒϥϦΛ഑෍͢Δ

Slide 42

Slide 42 text

πʔϧͷ࢖͑͹0,  )FSPLVϓϩμΫτ  IUUQTHJUIVCDPNJOUFSBHFOU  SLBNVSB͞ΜϓϩμΫτ  IUUQSLBNVSBIBUFOBCMPHDPN FOUSZ  ͦͷଞ  IUUQTHJUIVCDPNTFPNP[JOUFSQPM

Slide 43

Slide 43 text

͓·͚

Slide 44

Slide 44 text

࠷ۙ΍͍ͬͯΔ͜ͱ  ര଎ϓϨΪϡʔϓϩΩγQPPMΛ࢖ͬͨ ΠϯςάϨʔγϣϯ؀ڥͷߏங  IUUQTHJUIVCDPNNPPLKQQPPM  QVMMܕͷϓϨϏϡʔ؀ڥ  ʮTUBHJOH࢖͍·͢ʯએݴ͔Βͷ୤٫  ίϯςφ্Ͱಈ࡞ՄೳͳϙʔλϏϦςΟ ͷߴ͍ΞϓϦέʔγϣϯ΁

Slide 45

Slide 45 text

QPPMΛར༻ͨ͠ϓϨϏϡʔ؀ڥ HJUQVMMͯ͠ ίϯςφΛཱͪ͋͛Δ OFXGFBUVSF ϒϥϯνΛQVTI OFXGFBUVSFDBSUʹ ΞΫηε͢Δ

Slide 46

Slide 46 text

·ͱΊ

Slide 47

Slide 47 text

ࠓ೔ͷ͓࿩  +40/)ZQFS4DIFNBͱ͸  ϖύϘͰͷ+40/)ZQFS4DIFNB  ͓·͚

Slide 48

Slide 48 text

ϖύϘͰ͸  伱ؒΛຒΊΔϥΠϒϥϦΛ࡞੒  Χϥʔϛʔγϣοϓ"1*  JOUFSQPMΛಋೖ͕ͨ͠ఫୀத  QSNE  SBDLKTPO@TDIFNBcDPNNJUUFF   46;63*  QSNE DPNNJUUFF

Slide 49

Slide 49 text

QPPMΛར༻ͨ͠ϓϨϏϡʔ؀ڥ HJUQVMMͯ͠ ίϯςφΛཱͪ͋͛Δ OFXGFBUVSF ϒϥϯνΛQVTI OFXGFBUVSFDBSUʹ ΞΫηε͢Δ

Slide 50

Slide 50 text

No content