ããŒã 1: REST ãšã¯äœã§ãã ãã®ããŒãã§ã¯ãã¯ã©ã€ã¢ã³ããšãµãŒããŒã®éã§éä¿¡ãã©ã®ããã«è¡ããããã詳ããèŠãŠãããŸãããã®éçšã§ãæ°ããçšèªãæããã«ãããããã«ã€ããŠèª¬æããŸãã ãã¹ãŠãæ確ã«ããããã«ãRESTful ã¢ããªã±ãŒã·ã§ã³ã®äŸã䜿çšããŠã¯ã©ã€ã¢ã³ããšãµãŒããŒã®éä¿¡ãåæããŸãã顧客ãšãã®æ³šæã«é¢ããæ
å ±ãä¿åã§ãã Web ã¢ããªã±ãŒã·ã§ã³ãéçºããŠãããšããŸãããããã®ãç§ãã¡ã®ã·ã¹ãã ã¯ããšã³ãã£ãã£ã®äœæãç·šéãåé€ããšã³ãã£ãã£ã«é¢ããæ
å ±ã®æäŸãªã©ãããã€ãã®ãšã³ãã£ãã£ãæäœããããšãã§ããŸãããããã®ãšã³ãã£ãã£ã¯æ¬¡ã®ããã«ãªããŸãã
- ã¯ã©ã€ã¢ã³ã - ã¯ã©ã€ã¢ã³ãã
- 泚æ - 顧客ã®æ³šæã
- ã¢ã€ãã - ååã
ãªã¯ãšã¹ã
ã¯ã©ã€ã¢ã³ãã®ãªã¯ãšã¹ãã¯ãã»ãšãã©ã®å Žå HTTP çµç±ã§è¡ãããŸããäžè¬ã«ãHTTP ãªã¯ãšã¹ãã¯ããã€ãã®ã³ã³ããŒãã³ãã§æ§æãããŸãã- HTTP ã¡ãœããã
- ã¿ã€ãã«;
- URI;
- ãªã¯ãšã¹ãæ¬æã
URIãšãªãœãŒã¹
ã¯ã©ã€ã¢ã³ãããªã¯ãšã¹ããéããŠååŸãŸãã¯å€æŽããããŒã¿ã¯ãªãœãŒã¹ãšåŒã°ããŸããã¯ã©ã€ã¢ã³ããšãµãŒããŒã®å¯Ÿè©±ã®åºç€ã¯ãªãœãŒã¹ã®æäœã§ãã REST ã®ãªãœãŒã¹ã¯ãååãä»ããããšãã§ãããã®ãã¹ãŠã§ããããæå³ãããã㯠Java ã®ã¯ã©ã¹ã«äŒŒãŠããŸããJava ã§ã¯ããããããã®ã®ã¯ã©ã¹ãäœæã§ããŸããREST ã§ãåãã§ãããªãœãŒã¹ã¯ããŠãŒã¶ãŒãããã¥ã¡ã³ããã¬ããŒãã泚æãªã©ãäœã§ãæ§ããŸãããããããã¹ãŠã¯ãäœããã®ãšã³ãã£ãã£ã®æœè±¡åã§ããå Žåãããã°ãç»åããããªãã¢ãã¡ãŒã·ã§ã³ãPDF ãã¡ã€ã«ãªã©ã®å ·äœçãªãã®ã§ããå ŽåããããŸãããã®äŸã§ã¯ã3 ã€ã®ãªãœãŒã¹ããããŸãã- ã¯ã©ã€ã¢ã³ã - ã¯ã©ã€ã¢ã³ãã
- 泚æ - 顧客ã®æ³šæã
- ã¢ã€ãã - ååã
- /clients - ãã¹ãŠã®æ¢åã¯ã©ã€ã¢ã³ãã® URIã
- /clients/23 - ç¹å®ã®ã¯ã©ã€ã¢ã³ããã€ãŸã ID=23 ã®ã¯ã©ã€ã¢ã³ãã® URIã
- /clients/4 - ç¹å®ã®ã¯ã©ã€ã¢ã³ããã€ãŸã ID=4 ã®ã¯ã©ã€ã¢ã³ãã® URIã
- /clients/4/orders â ã¯ã©ã€ã¢ã³ã No. 4 ã®ãã¹ãŠã®æ³šæã® URIã
- /clients/1/orders/12 - ã¯ã©ã€ã¢ã³ã No. 1 ã®ãªãŒã㌠No. 12 ã® URIã
- /clients/1/orders/12/items â ã¯ã©ã€ã¢ã³ã No. 1 ãäœæãã泚æ No. 12 ã®å šè£œåãªã¹ãã® URIã
HTTPã¡ãœãã
HTTP ã¡ãœãã (è±èªã® HTTP ã¡ãœãã) ã¯ãã³ã³ãããŒã«ãšåºåãæåãé€ãä»»æã®æåã®ã·ãŒã±ã³ã¹ã§ããããªãœãŒã¹ã«å¯Ÿããäž»ãªæäœã瀺ããŸããäžè¬ç㪠HTTP ã¡ãœãããããã€ããããŸããRESTful ãµãŒãã¹ã§æããã䜿çšããããã®ããªã¹ãããŸãã- GET - ç¹å®ã®ãªãœãŒã¹ (ID çµç±) ãŸãã¯ãªãœãŒã¹ã®ã³ã¬ã¯ã·ã§ã³ã«é¢ããæ å ±ãååŸããããã«äœ¿çšãããŸãã
- POST - æ°ãããªãœãŒã¹ã®äœæã«äœ¿çšãããŸãã
- PUT - ãªãœãŒã¹ãå€æŽããããã«äœ¿çšãããŸã (ID çµç±)ã
- DELETE - ãªãœãŒã¹ã (ID çµç±ã§) åé€ããããã«äœ¿çšãããŸãã
èŠåºã
ãªã¯ãšã¹ããšã¬ã¹ãã³ã¹ã«ã¯ HTTP ããããŒãå«ãŸããŸãããªã¯ãšã¹ã (ãŸãã¯ã¬ã¹ãã³ã¹) ã«é¢ããè¿œå æ å ±ãéä¿¡ããŸããããããŒã¯ããŒãšå€ã®ãã¢ã§ããæãäžè¬çãªèŠåºãã®ãªã¹ãã¯ãWikipediaããŒãžã§èªãããšãã§ããŸããREST ã䜿çšãããšãã¯ã©ã€ã¢ã³ãã¯å€ãã®å Žåããªã¯ãšã¹ãå ã® Accept ããããŒããµãŒããŒã«éä¿¡ã§ããŸããã¯ã©ã€ã¢ã³ããã©ã®ãããªåœ¢åŒã§å¿çãåãåãããšãæåŸ ããŠãããããµãŒããŒã«ç¥ãããå¿ èŠããããŸããããŸããŸãªåœ¢åŒã®ãªãã·ã§ã³ãããããã MIME ã¿ã€ã ãªã¹ãã«è¡šç€ºãããŸãã MIME (MultiPurpose Internet Mail Extensions) ã¯ãã€ã³ã¿ãŒãããäžã§éä¿¡ã§ããããã«æ å ±ããšã³ã³ãŒãããã¡ãã»ãŒãžããã©ãŒãããããããã®ä»æ§ã§ããå MIME ã¿ã€ãã¯ãã¹ã©ãã·ã¥ã§åºåãããã¿ã€ããšãµãã¿ã€ãã® 2 ã€ã®éšåã§æ§æãããŸããããŸããŸãªçš®é¡ã®ãã¡ã€ã«ã® MIME ã¿ã€ãã®äŸ:- ããã¹ã - ããã¹ã/ãã¬ãŒã³ãããã¹ã/cssãããã¹ã/html;
- ç»å - ç»å/pngãç»å/jpegãç»å/gif;
- ãªãŒãã£ãª - ãªãŒãã£ãª/wavããªãŒãã£ãª/mpeg;
- ãã㪠- ãããª/mp4ããããª/ogg;
- ã¢ããªã±ãŒã·ã§ã³ - application/jsonãapplication/pdfãapplication/xmlãapplication/octet-streamã
Accept:application/json
ãã®ããããŒã¯ãã¯ã©ã€ã¢ã³ãã JSON 圢åŒã§å¿çãåä¿¡ããããšãæåŸ
ããŠããããšããµãŒããŒã«äŒããŸãã
ãªã¯ãšã¹ãããã£
ã¯ã©ã€ã¢ã³ããããµãŒããŒã«éä¿¡ãããã¡ãã»ãŒãžããªã¯ãšã¹ãã«ããã£ããããã©ããã¯ãHTTP ãªã¯ãšã¹ãã®ã¿ã€ãã«ãã£ãŠç°ãªããŸããããšãã°ãGET ãªã¯ãšã¹ããš DELETE ãªã¯ãšã¹ãã«ã¯éåžžããªã¯ãšã¹ãæ¬æãå«ãŸããŸããããã ããPUT ãš POST ã«ã¯ä»¥äžãå«ããããšãã§ããŸããããã¯ãã¹ãŠããªã¯ãšã¹ã ã¿ã€ãã®æ©èœçãªç®çã«é¢ãããã®ã§ããçµå±ã®ãšãããID (URL ã§éä¿¡ããã) ã«ãã£ãŠããŒã¿ãåä¿¡ããŠââåé€ããã«ã¯ãè¿œå ã®ããŒã¿ããµãŒããŒã«éä¿¡ããå¿ èŠã¯ãããŸããããã ããæ°ãããªãœãŒã¹ (POST ãªã¯ãšã¹ã) ãäœæããã«ã¯ããã®ãªãœãŒã¹ã転éããå¿ èŠããããŸããæ¢åã®ãªãœãŒã¹ãå€æŽããå Žåãåæ§ã§ããREST ã§ã¯ããªã¯ãšã¹ãæ¬æã®éä¿¡ã« XML ãŸã㯠JSON 圢åŒãæããã䜿çšãããŸããæãäžè¬çãªåœ¢åŒã¯ JSON ã§ãããµãŒããŒã«ãªã¯ãšã¹ããéä¿¡ãããã®äžã«æ°ãããªãœãŒã¹ãäœæãããšããŸããèŠããŠãããšæããŸãããäŸãšããŠã顧客ã®æ³šæã管çããã¢ããªã±ãŒã·ã§ã³ãåãäžããŸãããæ°ããã¯ã©ã€ã¢ã³ããäœæããããšããŸããç§ãã¡ã®å Žåãã¯ã©ã€ã¢ã³ãã«é¢ãã次ã®æ å ±ãä¿åããŸã: åå é»åã¡ãŒã« é»è©±çªå· ãã®ãããªãªã¯ãšã¹ãã®æ¬æã¯æ¬¡ã® JSON ã«ãªãå¯èœæ§ããããŸãã{
"name" : "Amigo",
"email" : "amigo@jr.com",
"phone" : "+7 (191) 746-43-23"
}
ãªã¯ãšã¹ãããŸãšãã
ããã§ãã¯ã©ã€ã¢ã³ãã®ãªã¯ãšã¹ããã©ã®ãããªãã®ã§æ§æãããŠãããã調ã¹ãŸãããã¯ãšãªã®äŸã説æãšãšãã«ããã€ãæããŠã¿ãŸããããªã¯ãšã¹ã | 説æ |
---|---|
|
ã¯ã©ã€ã¢ã³ãNo.23ã®æ å ±ãjsonãŸãã¯xml圢åŒã§ååŸãã |
|
次ã®ãã£ãŒã«ãã䜿çšããŠæ°ããã¯ã©ã€ã¢ã³ããäœæããŸãã åå - Amigo é»åã¡ãŒã« - amigo@jr.com é»è©±çªå·ãâ +7 (191) 746-43-23 |
|
ã¯ã©ã€ã¢ã³ã #1 ã次ã®ããã«ç·šéããŸãã åå - Ben é»åã¡ãŒã« - bigben@jr.com é»è©±çªå·ãâ +380 (190) 346-42-13 |
|
顧客çªå· 12 ã®æ³šæçªå· 6 ãã·ã¹ãã ããåé€ããŸã |
çã
ãµãŒããŒã®å¿çã«ã€ããŠå°ãèšã£ãŠã¿ãŸããããéåžžãçãã¯æ¬¡ã®éšåã§æ§æãããŸãã- å¿çã³ãŒãã
- ããããŒã
- ã¬ã¹ãã³ã¹ããã£ã
HTTPã¬ã¹ãã³ã¹ã³ãŒã
HTTP å¿çã³ãŒãã詳ããèŠãŠã¿ãŸãããã以äžã¯ Wikipedia ããã®åŒçšã§ããHTTP ã¹ããŒã¿ã¹ ã³ãŒãã¯ã HTTP ãããã³ã«çµç±ã®ãªã¯ãšã¹ãã«å¯ŸãããµãŒããŒå¿çã®æåã®è¡ã®äžéšã§ãã10 é²æ° 3 æ¡ã®æŽæ°ã§ããæåã®æ°åã¯ç¶æ ã®ã¯ã©ã¹ã瀺ããŸããéåžžãå¿çã³ãŒãã®åŸã«ââã¯ã¹ããŒã¹ã§åºåãããè±èªã®èª¬æãã¬ãŒãºãç¶ãããã®ç¹å®ã®å¿çã®çç±ããŠãŒã¶ãŒã«èª¬æããŸããäŸ:- 201 ãäœæãããŸããã
- 401 ç¡èš±å¯ã
- 507 ã¹ãã¬ãŒãžãäžååã§ãã
- 1ХХ - æ å ±;
- 2ХХ - ã¯ã©ã€ã¢ã³ãã®ãªã¯ãšã¹ãã®åãå ¥ããšåŠçãæåããã±ãŒã¹ã«ã€ããŠéç¥ããŸãã
- 3XX - æäœãæ£åžžã«å®äºããã«ã¯ãéåžžã¯å¥ã® URI ã䜿çšããŠå¥ã®ãªã¯ãšã¹ããè¡ãå¿ èŠãããããšãã¯ã©ã€ã¢ã³ãã«éç¥ããŸãã
- 4ХХ - ã¯ã©ã€ã¢ã³ã ãšã©ãŒãããšãã°ã誀ã£ãŠæ§ç¯ããããªã¯ãšã¹ãããã¯ã©ã€ã¢ã³ããååšããªããªãœãŒã¹ããªã¯ãšã¹ããããšãã«çºçããå¯èœæ§ãããããç¥ããã 404 Not Found ã³ãŒããªã©ã§ãã
- 5ХХ - ãµãŒããŒãšã©ãŒããµãŒããŒã®é害ã«ããæäœã倱æããå Žåã«ã¯ã©ã€ã¢ã³ãã«è¿ãããŸãã
GO TO FULL VERSION