GitHub Pages を Web API として使う

274c474bb14a19f48ee86907c5be2a1d?s=47 Kite
June 11, 2016

GitHub Pages を Web API として使う

GitHub の API ではなく、GitHub のサービスの一つである GitHub Pagesを使って、サーバなしで Web API を提供

274c474bb14a19f48ee86907c5be2a1d?s=128

Kite

June 11, 2016
Tweet

Transcript

  1. Use GitHub Pages as a Web API GitHub Pages Λ

    Web API ͱͯ͠࢖͏ Kansai Front-end users group 2016.06.11 ϑϩϯτΤϯυͷਓ͕Web APIΛޠΔձ
  2. WordPress core contributor Ruby on Rails contributor Wocker developer Bathe

    developer Frasco developer Web & graphic designer Programmer Kite KITERETZ inc. CEO & Funder ! kite.koga " ixkaito # ixkaito WHO AM I?
  3. ຊ೔ͷςʔϚ͸ GitHub API Ͱ͸ͳ͘ɺ Jekyll Pages API Λ࢖͍ GitHub Pages

    Ͱ Web API Λ ఏڙ͢Δ͜ͱͰ͋Δɻ
  4. Jekyll Pages API ͱ͸ • Jekyll ͷϓϥάΠϯ • Jekyll αΠτ಺ͷ͢΂ͯͷϖʔδɺ౤ߘɺυΩϡϝϯτɺ੩త

    ϑΝΠϧͷσʔλΛجʹ JSON ϑΝΠϧΛੜ੒͢Δ • API ͸ http://example.com/api/v1/pages.json ͷΑ͏ͳURL ͰऔಘՄೳ
  5. GitHub Pages ΍ Jekyll Λ࢖͏ ϝϦοτ • GitHub Pages Λ࢖͏͜ͱͰɺΠϯϑϥͷϝϯςφϯε͕ෆཁ

    • Git ʹΑΔιʔε؅ཧ • API ͷΧελϚΠζ͕ࣗ༝ • ελςΟοΫͳϑΝΠϧͷ഑৴ͳͷͰɺηΩϡϦςΟϦεΫ͕௿͍ • ύϒϦοΫϦϙδτϦͰ͔ͭಠࣗυϝΠϯΛ࢖༻͠ͳ͍৔߹͸ແ ྉ • ଞͷαʔϏε΁ͷҠߦ΋༰қ
  6. ໰୊఺ GitHub Pages ͸ 
 GitHub Pages dependencies ʹ͋Δ
 ϓϥάΠϯҎ֎͸αϙʔτ͍ͯ͠ͳ͍

    ͦͷ·· gh-pages ϒϥϯνͳͲʹϓογϡͯ͠΋ɺJSON ϑΝ Πϧ͸ੜ੒͞Εͳ͍
  7. ղܾํ๏ • ϩʔΧϧͰੜ੒͠ɺखಈͰ gh-pages ϒϥϯνͳͲʹϓογϡ ͢Δ • Travis CI ͳͲͷ֎෦αʔϏεΛ࢖ͬͯࣗಈԽ͢Δ

    • Rakefile ͳͲͰσϓϩΠΛ؆୯ʹ͢Δ
  8. खಈσϓϩΠ ϝϦοτ • ֶशίετ͕௿͍ • ͙͢ʹެ։͞ΕΔ σϝϦοτ • ໘౗͍͘͞

  9. Travis CI ͳͲʹΑΔσϓϩΠ ϝϦοτ • ௨ৗͷ GitHub Pages/Jekyll ͷӡ༻ͱશ͘ಉ͡ σϝϦοτ

    • Travis CI ͳͲͷֶशίετ͕͔͔Δ • GitHub Pages ʹެ։͞ΕΔ·Ͱ͕͔͔࣌ؒΔ
  10. Travis CI ʹΑΔσϓϩΠͷࣄྫ IUUQTHJUIVCDPNDXEJTBTUFSJOGPSNBUJPO

  11. Rakefile ͳͲʹΑΔσϓϩΠ ϝϦοτ • ֎෦αʔϏεʹཔΔඞཁ͕ͳ͘ɺσϓϩΠͷखؒ΋͔͔Βͳ͍ • GitHub Pages ʹ͙͢ʹެ։͞ΕΔ •

    Travis CI ͳͲΑΓ͸ֶशίετ͕௿͍ σϝϦοτ • Rakefile Λ࡞Δඞཁ͕͋Δ • `git push` Ҏ֎ʹɺσϓϩΠ༻ͷίϚϯυΛ࣮ߦ͢Δඞཁ͕͋Δ
  12. Rakefile ͷϘΠϥʔϓϨʔτ IUUQTHJUIVCDPNJYLBJUPKFLZMMBQJCPJMFSQMBUF

  13. ࢖͍ํ 1. Jekyll API Boilerplate ΛϑΥʔΫ 2. ϑΥʔΫͨ͠ϦϙδτϦΛΫϩʔϯ 3. Ϋϩʔϯͨ͠σΟϨΫτϦ಺ͰԼهΛ࣮ߦ


    $ bundle install --path vendor/bundle
 $ bundle exec jekyll serve --baseurl /jekyll-api-boilerplate 4. http://localhost:4000/jekyll-api-boilerplate/api/v1/ pages.json ʹΞΫηε͢Δ͜ͱͰ JSON API Λ֬ೝͰ͖Δ
  14. GitHub Pages ʹσϓϩΠ 1. `_config.yml` ಺ͷ `url` Λࣗ͝਎ͷ΋ͷʹมߋ 2. σΟϨΫτϦ಺ͰԼهΛ࣮ߦ


    $ bundle exec rake deploy 3. http://username.github.io/jekyll-api-boilerplate/api/v1/ pages.json ͷΑ͏ͳ URL ʹɺJSON API ͕ެ։͞Ε·͢
  15. Thank You!