Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Data APIを活用したWEBサイト構築手法

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

Data APIを活用したWEBサイト構築手法

Avatar for redamoon

redamoon

June 25, 2021
Tweet

More Decks by redamoon

Other Decks in Technology

Transcript

  1. Who are you MyProfile : { Name : ‘ؔޱ ༐थ‘,

    Belongs : ‘גࣜձࣾHAMWORKS ϑϩϯτΤϯυΤϯδχΞ’, Live : ‘ࡳຈ’, Ages : [35, ‘೥உ’], HistoryMT : ’11೥’, FavoriteMTML : ‘<mt:SetVarTemplate></mt:SetVarTemplate>’, MyMTPlugins : [ ‘MarkdownItField’, ’NetlifyBuildHooks’, ‘DataAPIResponseOutput’], FavoriteMusic : ‘SIAM SHADE’, Hobby : ‘ԂܳɾDIY’, Hashtag : [‘#ԂδχΞ’, ‘#ԂܳΤϯδχΞ’] Book : ‘ϓϩϑΣογϣφϧWebϓϩάϥϛϯά Vue.js', WebSite : ‘https://www.redamoon.net/’, Social : { Github : ‘redamoon’, Twitter : ‘@redamoon’, Instagram : ‘@redamoon’ } }
  2. "1*ͱදࣔͷ෼཭ CMSαʔό WEBαʔό Database API Template CMS Image/File CSS JavaScript

    HTML ैདྷͷCMSߏ੒ CMS؅ཧ͍ͯ͠ΔςϯϓϨʔτ࢖͍ɺWebαʔό΁഑৴/ಉҰᝑମͷυΩϡϝϯτϧʔτͰ؅ཧ
  3. "1*ͱදࣔͷ෼཭ Headless CMS Storage/Vercel etc API CMS Image/File CSS JavaScript

    HTML Headless CMSߏ੒ σʔλΛCMSͰ؅ཧ͠ߋ৽͝ͱʹCI্ͰϏϧυΛߦ͍ϗεςΟϯάઌͱͯ͠S3΍VercelΛར༻ Git/CI Template (static generator)
  4. ϚϧνϑΟʔϧυ Viewଆ΋ίʔυͰ؅ཧ͍ͨ͠৔߹ React΍VueͳͲͷίϯϙʔωϯτϕʔεͰ։ൃͰ͖Δ ελΠϧ΍HTMLͷมߋཤྺΛอ࣋Ͱ͖ΔʢGitʣ ϑΟʔϧυ୯ҐͰ୯ମςετՄೳ ϑΟʔϧυ୯ҐͰܕఆ͕ٛͰ͖Δ ίʔυ͕ෳࡶʹͳΔͨΊJSྗ͕ࢼ͞ΕΔ ඇΤϯδχΞ͕ͬ͘͞ͱϑΟʔϧυΛ௥ՃͰ͖ͳ͍ ϚϧνϑΟʔϧυͱ.5ϒϩοΫΤσΟλҧ͍ MTϒϩοΫΤσΟλ

    ඇΤϯδχΞͰ΋ͬ͘͞ͱ࡞Γ͍ͨ৔߹ ͢ͰʹͰ͖͍ͯΔϑΟʔϧυΛGUIͰ༻ҙͰ͖Δ ඇΤϯδχΞͰ΋ΧελϚΠζ͸Մೳ MTλάͰͦͷ··ग़ྗͰ͖Δ ϑϨʔϜϫʔΫͰ΋ͦͷ··஋ग़ྗͰදࣔՄೳ ελΠϧ΍HTML͕MTʹґଘ͢Δ ϑΟʔϧυ୯ҐͰͷ୯ମςετ͸೉͍͠ ϚϧνϑΟʔϧυͱMTϒϩοΫΤσΟλͷ࢖͍෼͚
  5. ୤.5.- MTMLͰͷ؅ཧɾ࣮૷ํ๏ • MTMLςϯϓϨʔτΛGitͰ؅ཧ • Docker؀ڥΛ༻ҙͯ͠ɺϩʔΧϧ؀ڥͰςϯϓϨʔτͷ࣮૷ • ຊ൪ɾεςʔδϯάɾϩʔΧϧ؀ڥ͝ͱʹMovable TypeΛ༻ҙ •

    ຊ൪σϓϩΠ͸खݩͷMTMLΛ؅ཧը໘΁ίϐʔ&ϖʔετͯ͠࠶ߏங • ϩʔΧϧ؀ڥͷڞ༗͸SQLͷμϯϓσʔλͱग़ྗͨ͠ΞηοτΛzipͰڞ༗ɾɾɾ
  6. ୤.5.- ։ൃϑϩʔɾӡ༻ͷ໰୊఺ • ςϯϓϨʔτ͕Movable Typeʹґଘ͍ͯ͠ΔͨΊɺDB͚͕ͩຊ౰ͷ࠷৽ɾɾɾ • ؅ཧը໘͔ΒςϯϓϨฤूՄೳͳͷͰɺඇΤϯδχΞ͕मਖ਼΋Մೳɾɾɾ • յΕ͔ͯΒ࿈བྷ͖ͯɺ࠷৽ͷίʔυΛ؅ཧը໘͔Βίϐʔ&ϖʔετͯ͠ϦϙδτϦʹϚʔδ •

    ϦϏδϣϯ͔Β௥ͬͯࠩ෼Λ֬ೝ͢Δʢϒϥϯν͝ͱʹςϯϓϨʔτ։ൃ͕Ͱ͖ͳ͍ʣ • MTML͸Τϥʔݕ஌ʹऑ͍ ※λΠϙͯ͠΋ग़ྗͰ͖Δ • ౉ͤΔ஋ʹܕ৘ใΛ͚ͭΕͳ͍ͨΊɺҙਤ͠ͳ͍ڍಈ͕ग़Δ͜ͱ͕͋Δ • ิ׬͕ͳ͍ͨΊɺͲͷϞδϡʔϧ͕ݺͼग़͔͢͸ςϯϓϨϞδϡʔϧ͔Βࢀর • ৘ใ͕ݹ͍ͨΊɺӡ༻Ͱ஁͑ͨ஌ݟͷΈ͔͠ͳ͍ʢڞ༗ͣ͠Β͍ʣ • ෳࡶʹ࡞Γ͗ͯ͢ɺҾ͖ܧ͗ઌ͔Βຖճ࿈བྷ͕དྷΔʢୈࡾऀ͕ಡΊͳ͍ʣ 😵 😵 😴
  7. σʔλͱςϯϓϨʔτͷ෼཭ ։ൃɾӡ༻ͷݟ௚͢͠Δ఺ • ςϯϓϨʔτ͸Movable Typeʹґଘͤͨ͘͞ͳ͍ • ͔ͳΒͣGit -> CIΛ௨ͯࣗ͠ಈԽ͍ͨ͠ •

    खݩͷίʔυ࠷৽ԽͷίϐʔΞϯυϖʔετෆཁʹ͍ͨ͠ • ϏϧυલʹΤϥʔΛݕ஌͍ͨ͠ • ొ࿥͞ΕΔ஋ͷܕ৘ใ΍ίʔυ্ͷܕ৘ใΛ΋࣮ͨͤͯ૷தͷૣظΤϥʔΛݕ஌͍ͨ͠ • ΤσΟλ্Ͱͷิ׬͕΄͍͠ • ૺ۰͢ΔΤϥʔΛ͙͙͚ͬͨͩͰղফͰ͖Δ͘Β͍ͷ৘ใྔ͕΄͍͠ • MTMLͰ࡞ΒΕͨΦϨΦϨυΩϡϝϯτ୤٫͍ͨ͠
  8. %BUB"1*Λ׆༻ͨ͠+BNTUBDLͷ։ൃϫʔΫϑϩʔ JamstackͷߏஙϙΠϯτ • جຊతʹαʔόϨεͳӡ༻Λҙࣝ͢ΔͨΊMTΫϥ΢υΛ࠾༻ • Ϗϧυ࣌ʹData APIΛݺͼग़͢ඞཁʢWebhookʣαʔόϨεߏ੒͸AWSΛ࠾༻ • ςϯϓϨʔτ͸Next.jsʢReactϕʔεʣΛ࠾༻ʢ΋ͪΖΜVueͳͲଞͷπʔϧ΋Մೳʣ •

    DockerͷMovable Type͸ෆཁʢMTΫϥ΢υͷData APIΛࢀর৘ใͱͯ͠࢖͏ʣ • Ξηοτؔ࿈͸Ϗϧυ࣌S3ͳͲ΁഑৴ʢϩʔΧϧͷࢀর͸MTΫϥ΢υͷΞηοτURLʣ • ImgixͳͲͷݕ౼΋ඞཁʢWebPͳͲʣ
  9. %BUB"1*Λ׆༻ͨ͠+BNTUBDLͷ։ൃϫʔΫϑϩʔ Asset Contents ※Webhook༻ϓϥάΠϯඞཁ ίϯςϯπ؅ཧऀ ςϯϓϨʔτ؅ཧʢΤϯδχΞʣ API Gateway هࣄɾΧςΰϦɾมߋɾ࡟আ Webhook

    URL (API Gateway΁ΤϯυϙΠϯτ΁ϦΫΤετ) Lambda Web؂ࢹʢSentryͰϑϩϯτΛ؂ࢹʣ issueԽ CIىಈ Asset -> S3 CloudFront S3 HTML CSS JavaScript Image/File ίʔυσϓϩΠ ※ςετΛ௨Βͳ͍ͱσϓϩΠ͠ͳ͍ Git push Drone ʢςετ/Ϗϧυʣ PRͷϚʔδࣦഊ
  10. %BUB"1*Λ׆༻ͨ͠+BNTUBDLͷ։ൃϫʔΫϑϩʔ ϝϦοτ • αʔόϨεߏ੒͢Δ͜ͱͰαʔόӡ༻ෆཁʢίϯςϯπ؅ཧऀ͸ීஈͷར༻ͱมΘΒͳ͍ʣ • ैདྷͷ࠶ߏஙಉ༷ʹ੩తͰ͋Δ • SSG / CDNΛར༻͢Δ͜ͱͰίϯςϯπͷϖʔδεϐʔυ΋վળ͞ΕΔ

    • ϒϥϯν͝ͱʹςϯϓϨʔτΛ։ൃͰ͖ΔͨΊɺϦϦʔε୯ҐͰෆཁͳ࡞ۀʢίϐϖʣΛࣗಈԽ • ༷ʑͳαʔϏεΛ૊Έ߹ΘͤΔ͜ͱ͕Ͱ͖ΔͨΊςϯϓϨʔτͷ֦ுੑ͕ߴ͍ • JavaScript/TypeScriptΛར༻͢Δ͜ͱͰίʔυ͕ݎ࿚׌ͭΞαΠϯઌ͕૿͑Δ • React/VueͳͲͷϑϨʔϜϫʔΫΛར༻͢ΔͨΊΦϨΦϨυΩϡϝϯτ͸ෆཁ • ςϯϓϨʔτͷ෼཭͢Δ͜ͱͰɺґଘ͕ղফ͞Ε໰୊͕Ͳ͜ʹ͋Δͷ͔௥͍΍͍͢
  11. %BUB"1*Λ׆༻ͨ͠+BNTUBDLͷ։ൃϫʔΫϑϩʔ σϝϦοτ • αʔόϨεߏ੒ͷΞʔΩςΫνϟઃܭͱ࣮૷͕Ͱ͖ΔΤϯδχΞ͕ඞཁ • αʔϏεར༻͕ଟ͍ͨΊɺো֐͸ඞͣى͖Δ • Gitͷૢ࡞पΓͷཧղ͕ඞཁʢඇΤϯδχΞ޲͚ʣ • JavaScript/TypeScript/React/VueͳͲͷ஌͕ࣝඞཁ

    • ར༻͢ΔαʔϏε΍Ϋϥ΢υͷ஌͕ࣝඞཁ • Movable Typeͷߋ৽λΠϛϯάͷͨΊͷWebhookϓϥάΠϯ͕ඞཁ • ΤϯυϙΠϯτ͕idϕʔεͷͨΊ؅ཧը໘͔Βࢀর͢Δ͔͠ͳ͍ ※ͦ͏͍͏ϓϥάΠϯ࡞Δʁ • Data APIࣗମ͸ॏ͍ͨɻͦͷ··Ͱ͸ϨϯμϦϯά͕஗͍ʢϩʔΧϧʹอଘ͢Δख๏΋औΕΔʣ
  12. ·ͱΊ • Data APIΛ׆༻͢Δ͜ͱͰ࠶ߏஙෆཁ • MTΫϥ΢υΛ׆༻͢Δ͜ͱͰαʔό؅ཧ͕ෆཁɾϦεΫ෼ࢄՄೳ • Jamstackߏ੒ʹ͢Δ͜ͱͰදࣔͷ୯ମςετ͕͠΍͍͢ʢΤϯδχΞϥΠΫʣ※γφϦΦςετՄ • ैདྷͷΤσΟλฤू

    -> ؅ཧը໘΁ίϐϖෆཁ • TypeScriptΛར༻͢Ε͹ɺ͞Βʹܕ҆શͳίʔυͱσόοάʢίʔυ׬݁ʣ͕Ͱ͖Δ • ैདྷͷςϯϓϨʔτࠩ෼໰୊΋ղফ͞ΕΔʢඇΤϯδχΞ͕؅ཧը໘͔Βউखʹमਖ਼͢Δ໰୊ʣ • MTML஌Βͳ͍ΤϯδχΞͰ΋࣮૷Մೳ
  13. 5IBOLZPV • https://www.movabletype.jp/developers/ data-api/v4-reference.html • https://github.com/ • https://bitbucket.org/ • https://about.gitlab.com/

    • https://ja.reactjs.org/ • https://jp.vuejs.org • https://svelte.dev/ • https://microcms.io/ • https://www.contentful.com/ • https://graphcms.com/ • https://jamstack.org/ • https://www.drone.io/ • https://circleci.com/docs/ja/ • https://jestjs.io/ja/ • https://www.cypress.io/ • https://playwright.dev/ • https://www.typescriptlang.org/ • https://sentry.io/