ð£ç¢ºèªããŠãã ããïŒ ãã®è¬çŸ©ã¯Java Springå®å
šåŸæã·ãªãŒãºã®3çªç®ã®è¬çŸ© ã§ãããšã¬ã¬ã³ããªå
åŒæå¹Žå°ã®æè¡çäºãã ã»ãšã³ãã³ã®ã¹ããªã³ã°å®å
šåŸæããŒãããããæåã«ç¢ºèªããŠãã ããã ïŒã·ã§ãŒãã«ããïŒ
VIDEO
ãã¹ãŠãHTTPããŒã¹
ä»ã®æä»£ã¯ãã¹ãŠãHTTPã«è»¢éããŸããç§ãã¡ãããç¥ã£ãŠããHTMLãç»åãç»åããã¡ã€ã«ã ãã§ãªããAPIã§ã¢ããªãšãµãŒããŒãéä¿¡ãããšãããŸããµãŒããŒãšãµãŒããŒãéä¿¡ãããšãã«ãã»ãšãã©HTTPã䜿çšããŸãã
ãã®ãããã¢ãã€ã«ã¢ããªéçºè
ãWebããã³ããšã³ãéçºè
ãããã¯ãšã³ãéçºè
ã¯ãã¹ãŠãHTTPãå¿
é ãšããŠããç¥ã£ãŠäœ¿çšããå¿
èŠããããŸããç¹ã«ãããã¯ãšã³ãéçºè
ã¯Spring Web MVCãJSPãPHPãASP.NETãNode.jsãPython DjangoãRubyon Railsãªã©ã®Webãã¬ãŒã ã¯ãŒã¯ããã¯ãããžã䜿çšããŸãããããã®Webãã¯ãããžã¯ãã¹ãŠHTTPããŒã¹ã§å®è£
ã ããŠããŸãã
åããŠãŠã§ãæè¡ãå匷ããéçºè
HTTPãæ£ããçè§£ããŠããªãç¶æ
ã§åããŠWebæè¡ãå匷ãããšãååãæ·±ãçè§£ããã®ã¯ç°¡åã§ã¯ãããŸããã ãªããªãããããã®æè¡ã¯ããªãããã§ã«HTTPãããç¥ã£ãŠãããšä»®å®ããæ©èœã®äœ¿ãæ¹ãäžå¿ã«èª¬æããŠããããã§ããããšãã°ãSpring Web MVCãåããŠåŠç¿ãããšãHTTPã«é¢é£ããå€ãã®æ©èœãçšèªãç»å ŽããŸããããªããããã®æ©èœãå¿
èŠãªã®ãããããã®çšèªãã©ãã§ã©ã®ãããªçç±ã§ããã®ããæç¢ºã«çè§£ããã®ã¯å°é£ã§ããã ãããæ·±ãçè§£ã§ã¯ãªããåã«æ©èœã®äœ¿ãæ¹ãäžå¿ã«åŠç¿ããããšã«ãªããŸãã
å®åã§ãŠã§ãæè¡ãå©çšããéçºè
å®åã§ãŠã§ãæè¡ã䜿çšããŠé·æééçºãããŠããæ©ã¿ã®é£ç¶ã§ãã API URLããã®ããã«èšèšããã®ã¯æ£ããã§ããïŒãã€POSTã䜿çšããŠPUTã䜿çšããå¿
èŠããããŸããïŒ HTTPã¹ããŒã¿ã¹ã³ãŒãã¯ã©ã®ãããªãã®ãéžæããã®ãè¯ãã§ããããïŒãã®ãããªæ©ã¿ãç¶ããããšã«ãªããŸãã
å®åéçºã«äžå¯æ¬ ãªHTTPã³ã¢å
容ãåŠç¿ã ãŠåºæºãç«ãŠããã®ã§ãããã€ã³ã¿ãŒãããè³æã¯åœ«å»æ£ãã°ã£ãŠãããééã£ãå
容ãå€ãã§ãããšã¯ãããHTTP仿§ãåžè²©ã®æ¬ã§åŠç¿ããã«ã¯ãå®åã«å¿
ãããå¿
èŠãªãå
容ãå€ããåŠç¿éãè² æ
ãããŸãã
è¬çŸ©ç®æš
ããªãã¯äžçã®HTTPããŒã¹ã®äžã§éçºããŸããã ããããã€ãäžåºŠã¯HTTPãçå£ã«åŠç¿ããŠæŽçããå¿
èŠããããŸãããã®è¬çŸ©ã®åŠç¿ç®æšã¯æ¬¡ã®ãšããã§ãã
HTTPã®å
šäœçãªæµããçè§£ããããšãã§ããŸãã å®åã«æ¬ ãããªãéèŠãªå
容ãäžå¿ã«èª¬æããŸãã ã§ããã ãç°¡åã«èª¬æããããã«ãå€ãã®å³ãšäŸã掻çšããŠèª¬æããŸãã ãã®ã¬ãã¹ã³ã§ã¯ãå®è·µã«å¿
èŠãªHTTPã®åºæ¬çãªç¥èããã¹ãŠåŠã¶ ããšãã§ããŸãã
è¬çŸ©å¯Ÿè±¡
ããã¯ãšã³ã ãµãŒããŒéçºè
Webããã³ããšã³ã ã¯ã©ã€ã¢ã³ãéçºè
ã¢ãã€ã«ããã³ããšã³ã ã¯ã©ã€ã¢ã³ãéçºè
ãŠã§ãæè¡ ãæ±ã ãã¹ãŠã®éçºè
ããªããWebãã¢ãã€ã«ã¢ããªã®ããã³ããšã³ããããã¯ãšã³ããªã©ã®HTTPãã¯ãããžã䜿çšããéçºè
ã§ããã°ããã®ã¬ãã¹ã³ã§ã¯HTTPãæ·±ãçè§£ããããšãã§ããŸãããã®äžã§ãçŽæ¥HTTP APIãèšèšããæäŸããªããã°ãªããªãWebã¢ããªã±ãŒã·ã§ã³ãéçºããããã¯ãšã³ãéçºè
ã«ãšã£ãп倧ã®åœ¹ã«ç«ã¡ãŸãã
è¬çŸ©æ§æ 1. ã€ã³ã¿ãŒããããããã¯ãŒã¯ è¬çŸ©ã¯ãŸãã€ã³ã¿ãŒããããããã¯ãŒã¯ãã説æããŸãã
HTTPãæçµçã«ã¯TCP / IPãŸãã¯UDPããŒã¹ã®äžã§åäœããã®ã§ãéåžžã«åºæ¬çãªã€ã³ã¿ãŒããããããã¯ãŒã¯ãçè§£ããå¿
èŠããããŸãã
2. URIãšWebãã©ãŠã¶ã®ãªã¯ãšã¹ããã㌠URIãšURLã®æŠå¿µã確å®ã«æŽçããŸãã
ãããŠãWebãã©ãŠã¶ã®èŠæ±ãããŒãä»ããŠHTTPã¡ãã»ãŒãžãã©ã®ããã«TCP / IPã¡ãã»ãŒãžã«å€ããããããã¯ãŒã¯ãä»ããŠå®å
ã«å°çãããããããŠHTMLå¿çãåãåããWebãã©ãŠã¶ã«ã¬ã³ããªã³ã°ãããããã»ã¹ã«ã€ããŠèª¬æããŸããããã«ãããHTTPãšãããã¯ãŒã¯ã®å
šãµã€ã¯ã«ãçè§£ã§ããŸãã
3. HTTP åºæ¬ HTTPã®åºæ¬çãªåäœãšæ©èœãåŠã³ãŸããå
·äœçã«ã¯ãã¹ããŒããã«ïŒStatefulïŒãã¹ããŒãã¬ã¹ïŒStatelessïŒã®æŠå¿µãããã³HTTPã¡ãã»ãŒãžã«ã€ããŠè©³ããåŠã³ãŸãã
4. HTTPã¡ãœãã ãŸããHTTP APIãç¡äœçºã«äžåºŠèšèšããŠã¿ãŸããããäœãåé¡ãªã®ãã調ã¹ãŠããªãHTTPã¡ãœãããå¿
èŠãªã®ããåŠã³ãŸãã
ããŸããŸãª HTTP ã¡ãœãããåŠç¿ããGETãPOSTãPUTãPATCHãDELETE ãªã©ã®äž»èŠãª HTTP ã¡ãœããããã€ã©ã®ããã«äœ¿çšããããåºæ¬ã«ããŸãã
5. HTTPã¡ãœããã®æŽ»çš å®åã§äž»ã«äœ¿çšããåºæ¬çãªæŽ»çšæ³ãåŠã³ãŸãã HTMLãã©ãŒã ãä»ããŠã¡ãã»ãŒãžãéä¿¡ããæ¹æ³ãAPIãä»ããŠéä¿¡ããæ¹æ³ãªã©ãåŠç¿ããŸãããããŠãHTTP API URLãæ£ããèšèšããæ¹æ³ãäŸãéããŠåŠç¿ããŸããçè«ãšå®åã®éçãå
æããæ¹æ³ã説æããŸãã
6. HTTPã¹ããŒã¿ã¹ã³ãŒã HTTPã¹ããŒã¿ã¹ã³ãŒãã«ã€ããŠèª¬æããŸããã©ã®ç¶æ
ã³ãŒããäžããã®ãæ£ããæ¹æ³ã§ããã2xxã3xxã4xxã5xxã®é©åãªæå³ãšäœ¿ãæ¹ãåŠã³ãŸãã
7. HTTPããã㌠- äžè¬ããã㌠HTTPã«ã¯å€æ°ã®ããããŒããããŸããããã§ã¯ã衚çŸãã³ã³ãã³ãããŽã·ãšãŒã·ã§ã³ãè»¢éæ¹åŒãã¯ãããŒãªã©ãåãªãæ©èœèª¬æã§ã¯ãªããäŸãšäºäŸã§åŠç¿ããŸãã
8. HTTPããã㌠- ãã£ãã·ã¥ HTTP ãã£ãã·ã¥ã«é¢ããåºæ¬çãªå
容ãåŠç¿ããŸãããã£ãã·ã¥ãå¿
èŠãªçç±ããããã©ãŠã¶ãã£ãã·ã¥ããããã·ãã£ãã·ã¥ãæ¡ä»¶ä»ãèŠæ±ããã£ãã·ã¥ç¡å¹åæ¹æ³ãªã©ãåŠç¿ããŸãã
ããããç¶ãã¹ããªã³ã°å®å
šåŸæã·ãªãŒãº ã¹ããªã³ã°ãå®å
šã«ãã¹ã¿ãŒã§ããã·ãªãŒãºãçšæããŠããŸããå®éã®å®åã§äœ¿çšããã³ã¢ã¹ããªã³ã°æ©èœãäžå¿ã«ãå®åã§äœ¿ãããŠããªããå€ãæ©èœã¯ææ¢ã«çç¥ããå®åããŠããŠãäŒæããŠããäºå®ã§ãã
è¬çŸ©é æ¬åœïŒ Spring Web MVC - 1ç·š
ç®æšïŒ Webã¢ããªã±ãŒã·ã§ã³ã®éçºã«å¿
èŠãªãã¹ãŠã®Webæè¡ã宿ãããããšãç®çãšããè¬çŸ©ã§ãã WebããŒã¹ããå®åãŸã§ïŒ å®åéçºã®ããã®å
容ãå€ãããWebã¢ããªã±ãŒã·ã§ã³éçºçµéšã®ãªãéçºè
ãé©å¿ã§ããããã«æ§æããŸããã Java Webæè¡ã®è©±ïŒ ãµãŒãã¬ããããã£ã«ã¿ãªã©Javaã®åºæ¬Webæè¡ããå§ããŠããªãSpring MVCãåºãŠããã®ãã説æããŸãã å®è·µäŸã®äžå¿ïŒ å®è·µããã¹ããªã³ã°ã§Webã¢ããªã±ãŒã·ã§ã³ãéçºãããšãã«å¿
èŠãªãã¹ãŠã®ã³ãŒã¹ãäŸãéããŠèªç¶ã«åŠç¿ããå®åã§ã®ãã¹ããã©ã¯ãã£ã¹ãäŒããŸããç°¡æœãïŒ å®åã§äœ¿çšããŠããªãå€ãæ©èœã¯å€§èã«é€å€ãããŸãããææ°ã®å®åã«äž»ã«äœ¿çšããå
容ãäžå¿ã«èª¬æããŸãã é¢é£ããŒãããã