GitHub の API ではなく、GitHub のサービスの一つである GitHub Pagesを使って、サーバなしで Web API を提供
Use GitHub Pagesas a Web APIGitHub Pages Λ Web API ͱͯ͠͏Kansai Front-end users group2016.06.11 ϑϩϯτΤϯυͷਓ͕Web APIΛޠΔձ
View Slide
WordPress core contributorRuby on Rails contributorWocker developerBathe developerFrasco developerWeb & graphic designerProgrammerKiteKITERETZ inc. CEO & Funder! kite.koga " ixkaito # ixkaitoWHO AM I?
ຊͷςʔϚGitHub API Ͱͳ͘ɺJekyll Pages API Λ͍GitHub Pages Ͱ Web API Λఏڙ͢Δ͜ͱͰ͋Δɻ
Jekyll Pages API ͱ• Jekyll ͷϓϥάΠϯ• Jekyll αΠτͷͯ͢ͷϖʔδɺߘɺυΩϡϝϯτɺ੩తϑΝΠϧͷσʔλΛجʹ JSON ϑΝΠϧΛੜ͢Δ• API http://example.com/api/v1/pages.json ͷΑ͏ͳURLͰऔಘՄೳ
GitHub Pages Jekyll Λ͏ϝϦοτ• GitHub Pages Λ͏͜ͱͰɺΠϯϑϥͷϝϯςφϯε͕ෆཁ• Git ʹΑΔιʔεཧ• API ͷΧελϚΠζ͕ࣗ༝• ελςΟοΫͳϑΝΠϧͷ৴ͳͷͰɺηΩϡϦςΟϦεΫ͕͍• ύϒϦοΫϦϙδτϦͰ͔ͭಠࣗυϝΠϯΛ༻͠ͳ͍߹ແྉ• ଞͷαʔϏεͷҠߦ༰қ
GitHub Pages GitHub Pages dependencies ʹ͋Δ ϓϥάΠϯҎ֎αϙʔτ͍ͯ͠ͳ͍ͦͷ·· gh-pages ϒϥϯνͳͲʹϓογϡͯ͠ɺJSON ϑΝΠϧੜ͞Εͳ͍
ղܾํ๏• ϩʔΧϧͰੜ͠ɺखಈͰ gh-pages ϒϥϯνͳͲʹϓογϡ͢Δ• Travis CI ͳͲͷ֎෦αʔϏεΛͬͯࣗಈԽ͢Δ• Rakefile ͳͲͰσϓϩΠΛ؆୯ʹ͢Δ
खಈσϓϩΠϝϦοτ• ֶशίετ͕͍• ͙͢ʹެ։͞ΕΔσϝϦοτ• ໘͍͘͞
Travis CI ͳͲʹΑΔσϓϩΠϝϦοτ• ௨ৗͷ GitHub Pages/Jekyll ͷӡ༻ͱશ͘ಉ͡σϝϦοτ• Travis CI ͳͲͷֶशίετ͕͔͔Δ• GitHub Pages ʹެ։͞ΕΔ·Ͱ͕͔͔࣌ؒΔ
Travis CI ʹΑΔσϓϩΠͷࣄྫIUUQTHJUIVCDPNDXEJTBTUFSJOGPSNBUJPO
Rakefile ͳͲʹΑΔσϓϩΠϝϦοτ• ֎෦αʔϏεʹཔΔඞཁ͕ͳ͘ɺσϓϩΠͷख͔͔ؒΒͳ͍• GitHub Pages ʹ͙͢ʹެ։͞ΕΔ• Travis CI ͳͲΑΓֶशίετ͕͍σϝϦοτ• Rakefile Λ࡞Δඞཁ͕͋Δ• `git push` Ҏ֎ʹɺσϓϩΠ༻ͷίϚϯυΛ࣮ߦ͢Δඞཁ͕͋Δ
Rakefile ͷϘΠϥʔϓϨʔτIUUQTHJUIVCDPNJYLBJUPKFLZMMBQJCPJMFSQMBUF
͍ํ1. Jekyll API Boilerplate ΛϑΥʔΫ2. ϑΥʔΫͨ͠ϦϙδτϦΛΫϩʔϯ3. Ϋϩʔϯͨ͠σΟϨΫτϦͰԼهΛ࣮ߦ $ bundle install --path vendor/bundle $ bundle exec jekyll serve --baseurl /jekyll-api-boilerplate4. http://localhost:4000/jekyll-api-boilerplate/api/v1/pages.json ʹΞΫηε͢Δ͜ͱͰ JSON API Λ֬ೝͰ͖Δ
GitHub Pages ʹσϓϩΠ1. `_config.yml` ͷ `url` Λࣗ͝ͷͷʹมߋ2. σΟϨΫτϦͰԼهΛ࣮ߦ $ bundle exec rake deploy3. http://username.github.io/jekyll-api-boilerplate/api/v1/pages.json ͷΑ͏ͳ URL ʹɺJSON API ͕ެ։͞Ε·͢
Thank You!