ã¬ããŒãã®ãããã¯ã®1ã€ã¯ãåå è ã®éã§æ倧ã®é¢å¿ãåŒã³èµ·ãããŸãã-APIãçºè¡ããããã®åœ¢åŒããã¹ããããšãã®JSONã¹ããŒãã®äœ¿çšã ãã®èšäºã§ã¯ããã®ã¢ãããŒãã解決ããåé¡ãå¶éããããã®ãç®±ããåºãããã®ãããŒãã¹ãšããŠæäŸããããã®ã«ã€ããŠèª¬æããŸãã è¡ããïŒ
JSON-Schemaã¯ãXMLã¹ããŒã圢åŒã®JSONé¡äŒŒç©ã§ãã ãã®æ¬è³ªã¯ã宣èšåœ¢åŒã§ããã¥ã¡ã³ãã®æ§é ãèšå®ããããšã§ãã ãã¹ãç®çã§ã®JSONã¹ããŒã ã®äœ¿çšã劚ãããã®ã¯äœããããŸããã
APIã®ãã¹ãã®é£ããã¯äœã§ããããïŒ ããã¯æŽç·ŽãããUIã§ã¯ãããŸããã èããŠã¿ãŠããªã¯ãšã¹ããå®è¡ããçµæãäºæ³ãããçµæãšæ¯èŒããŠãã ããã
èŠæ±ãŸãã¯å¿çã«å«ãŸããå¯èœæ§ãããé¢åãªéå±€æ§é ã¯åæºããŠããŸãã ãã©ã¡ãŒã¿ãçŽ50ã®å Žåãèãããããã¹ãŠã®ç¹æ§ã±ãŒã¹ãèæ ®ããããšã¯éåžžã«åé¡ã§ãã
APIããã®è²¬ä»»ãæãããªããã°ãªããªããšããäºå®ã«å ããŠãããªãã¯ããããåçæ§ãšäžè²«æ§ãæåŸ ããŸãã ããã¯ãã©ãŒãããã«ãé©çšãããŸãã æ°åã¯åžžã«æååã§ã¯ãªãæ°åãšããŠäžããããããã«ãããã é åã空ã®å Žåãnullã§ãã£ãŠã¯ãªããªãããŸãã¯çãã«ãŸã£ããååšããªãã¯ãã§ããã空ã®é åã«ããŠãã ããã ãã¡ããããããã¯äºçŽ°ãªããšã§ãããAPIãŠãŒã¶ãŒã¯ããããããããããšãéåžžã«äžå¿«ã«æããŸãã ããã«ãããã¯é ãããšã©ãŒã«ã€ãªããå¯èœæ§ããããŸãã ãã®ããã圢åŒã®å³æ Œãã«æ³šæããå¿ èŠããããŸãã
äžè¬ã«ãæ§é ãšåœ¢åŒã®ãã¹ãã¯é£ããäœæ¥ã§ã¯ãããŸããã ã¡ãœããããšã«ãJSONã¹ããŒã圢åŒã䜿çšããŠèŠæ±ãšå¿çã®æ§é ãèšè¿°ããããšãã§ããŸãã
圌ããèšãããã«ããã¹ãŠãç§ãã¡ã®åã«çºæãããŸããã ããªãã¯ãããè³¢ã䜿ãå¿ èŠããããŸãã
API圢åŒã®ãã¹ã
ãªã¯ãšã¹ããšã¬ã¹ãã³ã¹
APIå¿çã®åœ¢åŒãæ£ç¢ºã«ãã¹ãããããšãæ€èšããŸãã ç§ãã¡ã«è¿ãã ãã§ã APIã¯èªã¿åãå°çšã§ãã ãã ããAPIãè€éãªãªããžã§ã¯ãã®åœ¢åŒã§ããŒã¿ãåä¿¡ã§ããå Žåãåºæ¬çãªã¢ãããŒãã¯èªã¿åãã®å Žåãšåãã§ãã
JSONã¹ããŒã
æžåŒ
ãã®ãããããŒãããžãã¹JSON-Schemaã§åœ¹ç«ã¡ãŸãã ãã©ãŒãããèªäœã®ç°¡åãªçŽ¹ä»ã¯ãã§ã«ããã«ãããŸã ãããã£ãŠãç§ãã¡ã¯äºçŽ°ãªäŸã«èªåèªèº«ãå¶éããŸãã JSONãªããžã§ã¯ããååŸããŸãã
{ "a":10, "b":"boo" }
ãã®æ§é ããã©ã¡ãŒã¿ãŒã®ã¿ã€ããã³ãããã¡ã³ããèšå®ããã«ã¯ããã©ã¡ãŒã¿ãŒå€ãç¹å¥ãªãªããžã§ã¯ãã«çœ®ãæããã ãã§ååã§ãã ç§ãã¡ã¯èŠãŸãïŒ
{ "a": { "type": "number", "required": true }, "b": { "type": "string", "required": true } }
åæããŸããã¯ã£ãããšã æŠããŠãJSONã¹ããŒãã¯ãXMLã¹ããŒã圢åŒã«é¡äŒŒããããšãç®æããŠããŸãã
PHPã®å®è£
ãã¡ãããçããèšè¿°ãããšãã«JSONã¹ããŒãã䜿çšããå¿ èŠã¯ãããŸããã ãã®åœ¢åŒã¯æ¯èŒçæ°ãããå®å šã«è§£æ±ºãããããã§ã¯ãããŸããã XMLã¹ããŒã圢åŒã»ã©å€ãã®ã©ã€ãã©ãªãšããŒã«ã¯ãããŸããã ããããéåžžã«å€ãã®éçºè ã«ãšã£ãŠãJSON圢åŒã¯ã¯ããã«æ確ã§ãã ãŸããPHPã«ã€ããŠèšãã°ãjson_encodeé¢æ°ãšjson_decodeé¢æ°ã®ãããã§ãJSONã¯ã»ãšãã©ãã€ãã£ãã§ãã
JSON-Schema圢åŒã®å®è£ ã¯ã ããŸããŸãªèšèªçšã§ã ã ã芧ã®ãšãããéžæã¯å€§ãããããŸããã MITãšBerkeleyã® 2ã€ã®ç 究æããã®PHPçšã®2ã€ã®ã©ã€ãã©ãªããããŸãã
å·çæç¹ã§ãMITã§ã®æåŸã®ã³ãããã¯2012幎2æã§ã2013幎6æã«ããŒã¯ã¬ãŒã§è¡ãããŸããããã®ãããã¯ã€ãã¯ã¬ãã¥ãŒã«ããããŒã¯ã¬ãŒã¯éžæãè¿«ãããŸããã
è»èã®ããšãšããŠãçãã®ãªããžã§ã¯ãã«ã¯ãå³ã«èšèŒãããŠãããã£ãŒã«ãã ãã§ãªããå®å šã«æ®ã£ãŠãããã£ãŒã«ããããããšã«æ³šæããããšãã§ããŸãã ããã«ãçãã¯å®å šã«æå¹ã§ãããã»ãšãã©ã®å Žåãããã¯åãå ¥ããããŸããã ç§ã®æèŠã§ã¯ãããã¯ç¹å¥ãªadditionalPropertiesããããã£ãããã©ã«ãã§falseã«æ瀺çã«èšå®ããå°ããªããªããã»ããµã«ãã誀解ãšããŠæ±ãããŸãã
æ€èšŒ
ããã«ã«APIã¬ã¹ãã³ã¹ã®æ€èšŒãå«ããããšã¯ããŸãæå³ããããŸãããäœåãªãªãŒããŒãããããããŸãã ãããããã¹ããå®è¡ãããšãããã§çµããã§ãã ã¢ãŒããåãæ¿ããã«ã¯ãã¢ããªã±ãŒã·ã§ã³æ§æãã¡ã€ã«ã®ãã©ã°ã§ååã§ãã
ç¹å®ã®Berkeleyã©ã€ãã©ãªãŒã«ã€ããŠè©±ãå Žåããã¹ãããã®æ€èšŒã®äŸïŒ
$validator = new Validator(); $validator->check(json_decode($input), json_decode($schema)); // $input $schema $this->assertTrue($validator->isValid(), print_r($validator->getErrors(), true));
çŽæçã«ãããäœãèµ·ãã£ãŠããã®ãã
JSONã¹ããŒã ããã§ãã¯ããããã®ãã¹ããç¹å¥ã«èšè¿°ããå¿ èŠããªãããšã«æ³šæããŠãã ããã æ©èœãã¹ãã¯ãã§ã«APIã§èšè¿°ãããŠãããšèããŠããŸãã ã€ãŸãããã£ã«ã¿ãªã³ã°ãæå¹ã«ããå Žåããã¹ããå®è¡ãããšãå¿ç圢åŒãããã¯ã°ã©ãŠã³ãã§èªåçã«ãã§ãã¯ãããŸãã ç©äºã®éã®ããã«ã å®éã«ã¯ãåè·¯ãæžãããšä»¥å€ã®ç¹å¥ãªåªåã¯å¿ èŠãããŸããã
ã¯ããå°ããªè¿œå ïŒããã©ãŒãã³ã¹ãã¹ãã§ã¯ãããã³ããããªãããã«æ€èšŒãç¡å¹ã«ããå¿ èŠããããŸãã ãŸããéçºè ã®ãã·ã³ã§ã¯ãéã«æå¹ã«ããŠããã©ãŒãããã®éåããã°ããæ€åºããŸãã 質å-JSONã¹ããŒã ã¯èª°ãæžãã¹ãã§ããïŒ éçºè ãæžããŠããã®ã§ããã£ãšäŸ¿å©ã§ãã ã¹ããŒã ã¯ãããžã§ã¯ãã³ãŒãå ã«ååšãããã©ãŒããããå€æŽããããšãéçºè ã¯ããã«ã¹ããŒã ãä¿®æ£ããŸãã
ããã¥ã¡ã³ã
ãã¹ããæŽçããåäœãã¹ãã«æ¥ç¶ããåºåã§åœ¢åŒã®æ£ç¢ºæ§ã«èªä¿¡ãæã£ãŠããŸãã ããããç§ãã¡ããã£ãŠããJSONã¹ããŒã ã䜿çšãããšãã®ãã1ã€ã®å€§ããªããŒãã¹ã¯ãAPIããã¥ã¡ã³ãã§ãã
ããã¥ã¡ã³ãã«ã¯1ã€ã®åé¡ããããŸã-ããŸããŸãããããªãã¯ãããæžããªããã°ãªããŸããã APIããã¥ã¡ã³ãã¯ãã®ä»æ§ã§ããããã¹ãŠã®ãã¥ã¢ã³ã¹ãåæ ããå¿ èŠããããŸãã ããŠãä»ã«ã©ã®ããã«ïŒ APIã¯ããèªäœã§ã¯ååšããã顧客ãæäœã§ããããã«ããããã ãã«ååšããŸãã ãããŠãããªãã圌ã«æåŸ ããé©ããå°ãªããªãã°ãªãã»ã©ãããã¯ããæ確ã«ãªãããŠãŒã¶ãŒã¯ãããããéãããå¿«é©ã«äœ¿ãããšãã§ããŸãã ããã¥ã¡ã³ããä¿åã§ããå¯äžã®ã±ãŒã¹ã¯ãAPIã®éçºè ãåæã«ãã®ãŠãŒã¶ãŒã§ããå Žåã§ãã ãããŠãããã¯åžžã«ããã§ã¯ãããŸããã ãããã£ãŠãããã¥ã¡ã³ãã®æ¹ãè¯ãã§ãããã ããŠããã©ã¡ãŒã¿ãŒã®ç·æ°ãæ°çŸã§ããå Žåãããã¥ã¡ã³ããææ°ã®ç¶æ ã«ä¿ã€æ¹æ³ã¯ïŒ ãã¹ãã§ã³ãŒããæžãã ãã§ãªããããã¥ã¡ã³ãã«åŸãå¿ èŠããããŸãã èŠããã«ããã©ã¹ã®ãã¹ããããã1ã€ããããã®äžã«ã¯ããã¥ã¡ã³ãããªããŠãååã§ãã
ããŒãžã§ãã³ã°
ããã§ã¯ãããã¥ã¡ã³ãã®ããŒãžã§ã³ç®¡çã«ã€ããŠã¯ã©ãã§ããããïŒ å®éãç§ãã¡ã¯å€ãã®äººãšåãããã«ã¢ãããŒããæ¡çšããŠããŸã-åæ©èœã¯gitã®å¥ã ã®ãã©ã³ãã§è¡ãããŸãã
ãŸããåãã©ã³ãã«ç¬èªã®ããŒãžã§ã³ã®ããã¥ã¡ã³ããããå Žåã éçºè ãšãã¹ã¿ãŒã®äž¡æ¹ã«ãšã£ãŠã誰ã«ãšã£ãŠãç°¡åã§ãã ç§ã¯ãã©ã³ãã§ã¿ã¹ã¯ãäœæããããã«ããã¥ã¡ã³ããæžããã¿ã¹ã¯ã«ã€ããŠãå¿ããŸãããã
ãããã£ãŠãããã¥ã¡ã³ããã³ãŒããšãšãã«ååšããå Žåã«é©ããŠããŸãã ãŸããç°ãªãã¿ã¹ã¯ããåãããã¥ã¡ã³ããããŒãžããã®ã䟿å©ã«ããããã«ãç¹å®ã®ããã¹ã圢åŒã§ä¿åããã®ãè«ççã§ãã Markdown圢åŒãã»ãã³ãã£ãã¯bbã³ãŒãããŸãã¯ãã®ä»ã®æ¹æ³ã§ä¿åã§ããŸãã ããããå®éã«ã¯ãããŸããŸãªè¡šããããã®éã®é¢ä¿ãçžäºåç §ãªã©ãå«ããã»ãšãã©è£žã®ããã¹ãã®ãŸãŸã§ãã ããã¥ã¡ã³ãã®æ£ç¢ºæ§ããã¹ãããæ¹æ³ã¯æ確ã§ã¯ãããŸããã æ¯åããç æ°ã«ãªããŸãããšæ éã«ãã¹ãŠãæåã§ç¢ºèªããŸãã ããã¯ç¬¬äžã«ããããŠç¬¬äºã«ããšã©ãŒããŸã æ®ã£ãŠããŸãã
JSONã¹ããŒã
ãŸããããã§ãïŒ
ãããæåŠããããšã¯å®å šã«äžå¯èœã§ãããããããµããŒãããããã®åŽåãå€§å¹ ã«åæžããããšã¯å¯èœã§ãã ãã§ã«JSONã¹ããŒãããããŸãã APIã¬ã¹ãã³ã¹ããã©ã¡ãŒã¿ãŒéã®éå±€é¢ä¿ãããŒã¿åããã©ã¡ãŒã¿ãŒãã€ã³ãã£ã³ã°ã«ãã¹ãŠã®ãã©ã¡ãŒã¿ãŒåãæ¢ã«å«ãŸããŠããŸãã ã€ãŸãããã®æ å ±ã¯ããã¥ã¡ã³ããçæããããã«ãå¿ èŠã§ãã
ãããã£ãŠããã«ããã°ããµã€ãšäº€å·®ãããããã¥ã¡ã³ããJSON-Schemaã§çŽæ¥èšè¿°ããããšã«ããŸããã JSONã¹ããŒã圢åŒã«ã¯æ¢ã«èª¬æã¿ã°ããããŸãã ããããä»æ§ã«ãããšãæååã§ãªããã°ãªããŸããã ãã ãããµã³ãã«ïŒãã¹ãããããµã³ãã«ã¿ã°ïŒãããã³ã·ãŒã¯ã¬ãããã©ã¡ãŒã¿ãŒïŒãã¹ããããé衚瀺ã¿ã°ïŒãªã©ã®ç¹å®ã®ãªãã·ã§ã³ãè¿œå ãããšäŸ¿å©ã§ãã ãããã£ãŠãããã«ã¯ãªããžã§ã¯ãã¿ã°ã®æ¹ãé©ããŠããŸãã ã¿ã°ã®ååãšããŠãã¡ã¿ããéžæããŸããã äŸïŒ
"reviews_count": { "type": "number", "required": true, "meta": { "description": " ", "hide": true } }
æåº
ããã§ãJSONã¹ããŒã ãç¹å¥ã«èšå®ããŸãã ããŒãµãŒããããŠããã¯ãšã¬ã¬ã³ããªããã¥ã¡ã³ãã«å€ãããŸãã ããã¥ã¡ã³ããäœæãããšããç¬èªã®ãã¡ã¿ãã¿ã°ã®ã³ã³ãã³ãã ãã§ãªãããã€ãã£ãã¹ããŒãã¿ã°ããã®æ å ±ãèæ ®ãããŸãã
ããã¥ã¡ã³ãã®ç¹å®ã®è¡šç€ºæ¹æ³ã¯ç°ãªãå ŽåããããŸãã éã«ãªã³ã¯ãããéåžžã®ãã©ããããŒãã«ãåªå ããŸããã ããããããã¯ãã¡ããçæ³çãªãªãã·ã§ã³ã§ã¯ãããŸããã ãã ããããã¥ã¡ã³ããJSONã¹ããŒã ã«é 眮ããŠããã¬ã³ããªã³ã°ã®æçµçãªæ¹æ³ã«ææãããããšã¯ãªããããããèªç±ã«ãªããŸãã
æ倧éã®æè»æ§ãåŸãããã«ãããã¥ã¡ã³ããå®å šã«JSONã¹ããŒãããæ§ç¯ããªãã§ãã ããã ããã¥ã¡ã³ãã®åããŒãžã«åå¥ã®ããã¹ããã¡ã€ã«ãããå Žåãç§ãã¡ã®ã¢ãããŒãã¯èšŒæãããŠããŸãã ãããŠããã§ã«ãã®äžã«ç¹å®ã®JSONã¹ããŒã ãžã®ãªã³ã¯ãæ¿å ¥ãããŠããŸãã ããŒãžãæ§ç¯ãããšããJSONã¹ããŒãã¯æçµçãªããã¹ããã¥ãŒã«å€æãããŸãã ãããã£ãŠãããã¥ã¡ã³ãã«ä»»æã®ããã¹ããäŸããã®ä»ã®è³æãé 眮ããåé¡ã解決ããŸãã åæã«ãã§ããããšããã¹ãŠJSONã¹ããŒã ã«ããã·ã¥ããããšã¯ããŠããŸããã
èªå·±èšºæ
ãã¹ããšããã¥ã¡ã³ãã®äž¡æ¹ã«åãJSONã¹ããŒã ã䜿çšãããŠããããšãããããŸãã ããã¯ãJSONã¹ããŒã ãåžžã«é©åã§æ£ããããšãæå³ããŸããããã§ãªãå Žåããã¹ãã¯å€±æããŸãã ãã®ãããååãšããŠããã©ã¡ãŒã¿ãŒã®ååããã®ã¿ã€ããå¿ é /ãªãã·ã§ã³ãæå¹ãªå€ã®ãªã¹ãããã©ã¡ãŒã¿ãŒéã®éå±€é¢ä¿ã«é¢é£ããããã¥ã¡ã³ãã«ãšã©ãŒã¯ãããŸããã ããããã®ããã«ãããã ãã§ã¯ååã§ã¯ãããŸããã
äŸ
ãŠãŒã¹ã±ãŒã¹ã®ãªãããã¥ã¡ã³ãã¯ãAPIãŠãŒã¶ãŒã®ãšã³ããªãããå€ãå€§å¹ ã«å¢å ãããŸãã ãããã£ãŠããããã¯å¿ ãè¿œå ããå¿ èŠããããŸãã 以äžã®ããã«æŽçããŸãã 次ã«ãããã¥ã¡ã³ãã§èŠæ±ã説æããåçã®äŸã瀺ããŸãã
ããããæšæž¬ããã®ã¯é£ãããªãã®ã§ãå¿çããã¹ãã®é¢é£æ§ã®åé¡ãæµ®äžããŸãã 1é±éãçµã¡ããã©ãŒãããã¯æ¡å€§ããŸãããããŠãåã³äœãäŸã«ããŸããïŒ ããè¯ãæ¹æ³ããããŸãã
ãµã³ãã«ããã¥ã¡ã³ãã®ã¯ãšãªçµæã¯åçã§ããå¿ èŠããããšããçµè«ã«éããŸããã ããã§ã¯ç°ãªãã¢ãããŒããå¯èœã§ãã APIã®ã¬ã¹ãã³ã¹ã¯éåžžã«å€§ããããšãå€ããããç¹å®ã®é åãã¯ãªãã¯ããŠããã¥ã¡ã³ãã«è¡šç€ºããŸãã ãã®æç¹ã§ãèŠæ±ãæºãããŸãã æãåçŽãªã¹ããŒã ã§ãããããŒã¿ã®åä¿¡ã«ããããªé 延ããããŸãã
ãã®ãªãã·ã§ã³ãåããªãå Žåã¯ãç¹å¥ãªã³ãã³ãã䜿çšããŠäŸã®ãã¹ãŠã®ãªã¯ãšã¹ããåçã«å®è¡ããããã¥ã¡ã³ãããŒãžã«åçãèšå ¥ã§ããŸãã ããã¯ãããšãã°ãªãªãŒã¹åã«è¡ãããšãã§ããŸãã
ãšããã§ãç§ãã¡ã¯ãŸã äŸãæžããŠããã®ã§ããããã¯äžçš®ã®æ©èœãã¹ããšèããããšãã§ããŸãã å®ã¯ãããã¥ã¡ã³ãå ã®ãã¹ãŠã®ãªã¯ãšã¹ããåéããJSONã¹ããŒã ããªã³ã«ããŠæå¹æ§ããã§ãã¯ããŸãã ãã ãããã®æ¹æ³ã§ã¯ãå£ããã¡ãœãããŸãã¯èª€ã£ãŠæ§æãããã¯ãšãªãç¹å®ã§ããŸãã
空ã®å€
圢åŒã®æ€èšŒã«ã€ããŠèšãã°ãå¿çã«ç©ºã®å€ãæã€ãã©ã¡ãŒã¿ãŒãã©ãåŠçãããã決å®ããå¿ èŠããããŸãã ç§ãã¡ã¯èªåèªèº«ã®ããã«ä»¥äžã®åæã«éããŸããã
ãããã®å Žåã§ãã空ã®å€ãå«ãŸããŠããå Žåã§ãããã©ã¡ãŒã¿ãŒã¯å¿çã«ååšããå¿ èŠããããŸãã ãã®ãããåçã®æ§é ããããããããªããŸãã 調ã¹ãããã ãã«ããã¥ã¡ã³ããåç §ããå¿ èŠã¯ãããŸããã
é ååãã©ã¡ãŒã¿ãŒã¯ç©ºã®é åãè¿ããŸãã ãªããžã§ã¯ãã¯ãã«ã§ãã æ°å€ããã³æååãã©ã¡ãŒã¿ãŒã®å ŽåããŒããšç©ºã®æååãæå³ã®ããå€ã§ããå Žåãããããè¿ããŸãã ããšãã°ããã©ã¡ãŒã¿ãã¬ãã¥ãŒã®æ°ãã¯ãŒããè¿ãå ŽåããããŸã-ããã¯è«ççã§ãã ãããããã©ã¡ãŒã¿ã建ç©ã®éæ°ãããŒããè¿ãå Žåãããã¯ãã³ã»ã³ã¹ã§ãã ããšãã°ãç¹å®ã®å®¶ã®éæ°ãäžæãªå Žåãnullãè¿ãããŸãã
nullãå¯èœãªå Žåãšããã§ãªãå Žåã¯ãJSONã¹ããŒã ã§æ瀺çã«ç€ºãããŸãã ãããŠãããã¯ããã¥ã¡ã³ãã§æå³ããŸãã ããªãã®ã¢ãããŒãã¯ç°ãªãå ŽåããããŸãããäž»ãªããšã¯ããã¹ãŠã®ãã©ã¡ãŒã¿ãŒã§çµ±äžãããŠããããšã§ããããããªããšãAPIã®ãšã³ããŠãŒã¶ãŒã¯é çã®çš®ã«ãªããŸãã
ãããã«
JSON-Schemaã¯ã貎éãªæéã®ãã¹ããšææžåAPIãå€§å¹ ã«ç¯çŽããŸãã ããã¯ãã»ãã®å°ãã®åªåãå€ãã®å©çãããããå Žåã«åœãŠã¯ãŸããŸãã ãŸããAPIã倧ããã»ã©ããã®ã¢ãããŒãã¯ããå€ãã®åŽåãç¯çŽããŸãã
確ãã«ãJSONã¹ããŒã ã䜿çšããããã®å°ããªããŒã«ããããäœæããããã«æè³ããå¿ èŠãçããå Žåã
ãã¹ãã®æéãç¯çŽããããšã«å ããŠãAPIã®äžäœäºææ§ãç¶æããã®ãç°¡åã§ãã API圢åŒã¯ãJSONã¹ããŒã ã§æ確ã«è¡šçŸãããŸãã ãŸãã倧éã®ããã¥ã¡ã³ããæã¡è¶ãããŸãã