https://www.freecodecamp.org/learn/coding-interview-prep/take-home-projects/show-the-local-weather
å€ãã®ãã£ã³ããŒã¯ããã©ãŒã©ã ã®ãã«ãã«ããŽãªãä»ããŠæ°è±¡ãããžã§ã¯ãã®åé¡ãå ±åããŠããŸãã æåã¯ãééã£ãã³ãŒãã䜿çšãããŠããã ãã ãšæã£ãŠããŸãããããã®1é±éã§ãèªåã®å€©æ°ãããžã§ã¯ããä»ã®ç¡æ°ã®ãããžã§ã¯ãã®åé¡ã«æ°ã¥ããŸããã ã°ãªããAPIãæ¥æ¬ã®æ°è±¡ããŒã¿ãã©ã³ãã ã«è¿ããŠããããã§ãã fetchãjQuery $ .ajaxã$ãgetJSOnããŸãã¯ãã®ä»ã®æ¹æ³ã䜿çšããŠãã£ã³ãã³ã°ã«ãŒã®ãããžã§ã¯ããéããæå¹ãªlatå€ãšlonå€ãã倩æ°ããŒã¿ãååŸãããšã75ïŒ ã®ç¢ºçã§ãè¿ãããå¿çã¯æ¥æ¬ã®å€©æ°ã«å¯Ÿãããã®ã§ãã https://codepen.io/freeCodeCamp/full/bELRjVã®å€©æ°ãã¢ã«åé¡ã衚瀺ãããŠããããšã確èªã§ã
該åœãªã
ç§ã¯åé¡ãç¹å®ãããšæããŸãïŒ ããã¯ãæ¥æ¬ã®ããŒã¿ãå«ããã£ãã·ã¥ããèªã¿åãã ãã§ãã
ãã£ãã·ã¥ã¯ããã¥ãŒã«60ãè¶ ãããªã¯ãšã¹ããããå Žåã«ã®ã¿äœ¿çšãããŸãïŒ50è¡ç®ïŒãã€ãŸããæ£ããçµæãè¿ãããå ŽåããããŸãã ãããã_æã _ãããã®äºæããªãçµæãè¿ãããŸãã
ããã¯ã©ã®ããã«ä¿®æ£ã§ããŸããïŒ 3ã€ã®ãªãã·ã§ã³ããããŸã...
ããã¯å©ããå¿ èŠãªã®ã§ãç§ã¯ãããèŠãŠã¿ãããšæããŸãã ãã ããããããããžã§ã¯ããæ··ä¹±ãããŠããããšãšãã¹ãªãŒããå¿ èŠãªããšãèãããšã誰ãããããä¿®æ£ãããå ŽåïŒæãç°¡åãªæ¹æ³ã¯ã代ããã«ãªã¯ãšã¹ããæåŠããããã«ãã£ãã·ã¥ãå€æŽããããšã§ãïŒãããããŠãã ããïŒ
ããŠãç§ã¯åé¡ã
ãããã£ãŠãæ¹åãè¡ãããšãã§ããŸãã ãããããæ¥æ¬ã®ããŒã¿ãéä¿¡ããã¯ãã®ãªã¯ãšã¹ããæåŠããå¿ èŠããããŸããïŒ ããã¯ãã¹ãŠæ¬¡ç¬¬ã§ãã ç§ã¯ãããäžæçã«ä¿®æ£ããææ¥ãããããè¯ãããããã«åªåããã€ããã§ãã
glitch.me APIã«ãã«ãªã¯ãšã¹ããè¡ãããšã¯ã§ããªããšæããŸãïŒãã¡ãããGitHubã«èŠéãããªããžããªããªãéãïŒã ãã®ãããæžã蟌ã¿æš©éãæã€äººã¯ãæå¹ãªAPIããŒã§ãã¹ãããåŸãå€æŽãããŒãžããå¿ èŠããããŸãã
ããã§ããç§ã¯çŸæç¹ã§afkã§ãã ããããç§ã¯åŸéãå¿ èŠã§ããããšã«æ°ã¥ããŸããã ããã«ã³ãŒããä¿®æ£ããŠãAPIåŒã³åºããå€ãããå Žåã«ãªã¯ãšã¹ããæåŠãããããã«ããŸãã
ããŠãç§ã¯ä»ãç§ã¯çæçã«è§£æ±ºçãäœæãããšæããŸãã æãããããŒã¿åéã«ã€ããŠäœããããã®ãããããŸãããã座æšã¯éåžžã«æ£ç¢ºã«ãªãåŸåããããŸãïŒç®çããã£ãã·ã¥ããããã«äžžããå¿ èŠããããŸããïŒïŒã ãã£ãã·ã¥ããã®ãã®ã§ããå Žåã¯ã100ïŒ æ£ç¢ºã§ã¯ãªãããšãæ確ã«ããããã«ãå¿ ãããŒã¯ãä»ããå¿ èŠããããŸãã
ãšã«ãããä»ã®ãšãããã³ãŒãããã£ãã·ã¥ã«ã¢ã¯ã»ã¹ããããšãããšã代ããã«ãšã©ãŒã¡ãã»ãŒãžãéä¿¡ãããŸãã
function getBestCachedData(lon, lat){
+ /*
var fs = require('fs');
var obj = JSON.parse(fs.readFileSync('./data/cache.json', 'utf8'));
+ */
- return obj;
+ return {
+ "error": "This API is overloaded with requests at the moment. Please try again in a few seconds and see if you get a response"
+ }
}
ããã«ã¡ã¯@ joker314ãšã©ãŒã§æåŠãããšããããªãã®è§£æ±ºçã«åæããŸãã PRããé¡ãã§ããŸããïŒ ããã調æ»ããããã«æéãå²ããŠãããŠããããšãã
@QuincyLarsonã¯ããã®https://fcc-weather-api.glitch.me/ã«ã¢ã¯ã»ã¹ã§ãããŠãŒã¶ãŒãã¬ã€ãã§ããŸããïŒ ããªããææè ã§ããã°ãç§ã¯å§ä»»ããããšãã§ããŸãã
@raisedadeadèŠåãããšãããglitch.meãå®éã«ãã«ãªã¯ãšã¹ãããµããŒãããŠãããã©ããã¯ããããŸãã-GitHubã«ã³ããŒãããããäœãã足ããªãå Žåãé€ããŸããïŒ
ç·šéïŒãã¡ãããä¿®æ£ãããã³ãŒãã¯ç§ã®ãªããã¯ã¹ã§èŠã€ããããšãã§ããŸãã
@ joker314ã¯ããæ£è§£ã§ãããªããã¯ã¹ãããããžã§ã¯ããæŽæ°ããŸãã 以åã®ã³ã¡ã³ãã¯ç¡èŠããŠãã ããã
ãã®ãããžã§ã¯ããžã®ã¢ã¯ã»ã¹ã®ç¢ºèªãã¯ã€ã³ã·ãŒãåŸ ã£ãŠããŸãã ãããæäŒã£ãŠãããŠããããšãã
@ raisedadead-ã§ã¯ããã®äžæçãªä¿®æ£ã¯ã©ã®ãããã®æéå®æœãããŸããïŒ ããã«å¯Ÿãã究極ã®è§£æ±ºçã¯ã©ã®ããã«èŠããã§ããããïŒ ããã¯åãªãã¬ãŒãå¶éã®åé¡ã§ããïŒ ãããããªããããå€ãã®ãã£ã³ãã³ã°ã«ãŒãæ°è±¡ãããžã§ã¯ããäœæããã«ã€ããŠãããã¯ããã«æªåããã§ãããã ã¬ãŒãå¶éãåŒãäžããããšã¯ã§ããŸããïŒ
ã§ã¯ããã®äžæçãªä¿®æ£ã¯ã©ã®ãããã®æéå®æœãããŸããïŒ
ããã¯äžæçãªãã®ã§ã¯ãªãããšã©ãŒãçºçãããšãåé¡ã®åå ãã¬ãŒãå¶éã§ããããšãããããŸãã
ããã¯OpenWeatherMapsAPIã®äžã«äœæãããã©ãããŒã§ãããhttpsããµããŒãããŠããªãã£ããããcodepenãšç«¶åããŠããŸããã
ãããããªããããå€ãã®ãã£ã³ãã³ã°ã«ãŒãæ°è±¡ãããžã§ã¯ããäœæããã«ã€ããŠãããã¯ããã«æªåããã§ãããã ã¬ãŒãå¶éãåŒãäžããããšã¯ã§ããŸããïŒ
ã¯ãããã£ã¬ã³ãžã§ã°ãªããã©ãããŒã®ä»£ããã«APIãçŽæ¥çµ±åããããšã§ãææããŒãžã§ã³ãéžæã§ããŸãã
https://openweathermap.org/priceãåç §ããŠ
@raisedadeadãã£ãã·ã¥ãããããšãæå³ããå ã®ã³ãŒãã®ããã§ãã ãããäºå®ã§ããããã©ã€ãã·ãŒãå°éããããã«ãããã©ã®ããã«èŠããããã«ã€ããŠè©³çŽ°ãæ»ããã«ããããšãã§ããã°ãã¬ãŒãå¶éãåé¿ã§ããããšãé¡ã£ãŠããŸããïŒ
èãçŽããŠã¿ããšããšã©ãŒã¡ãã»ãŒãžã®ä»£ããã«æå¹ãªããŒã¿ãè¿ãã®ãããããæåã§ãã 代ããã«ããã£ãã·ã¥ãå€æŽããŠã©ã³ãã ãªæ°è±¡æ¡ä»¶ãçæããå ŽæããAPIããžãŒãåŸã§å®éã®çµæãåŸãããã«åè©Šè¡ãã«èšå®ããŸãããã
@raisedadeadãããã«ã€ããŠã©ãæããŸããïŒ
ãã®ãããžã§ã¯ããå®äºããã°ããã§ãæ¥æ¬ã®æ°è±¡ããŒã¿ãåä¿¡ããããŸãã¯ïŒã»ãšãã©ã®å ŽåïŒããŒã¿ãåä¿¡ã§ããªããšããåé¡ãæ±ããŠãã人ãšããŠãããŒã¿ãåä¿¡ããæ¹ãããŒã¿ããªãããã䟿å©ã ãšèšãããã§ãã å°ãªããšãæ¥æ¬ã®ããŒã¿ã§ã¯ãæ£ç¢ºãªå€©æ°ã瀺ããŠããŠããã³ãŒããæ©èœãããã©ããã確èªã§ããŸããã
çè«çã«ã¯ãã©ã³ãã ãªããŒã¿ãéä¿¡ã§ããŸãã ããããããŒã¿ãæ£ãããªããšããèŠæ ã¯åããããããŸãããããã¯ééããªãã§ãããã
ãšã«ããããã圹ç«ã€ãªããã©ã³ãã ãªããŒã¿ãæã£ãŠã¿ãŸãããã
@QuincyLarsonäžèšã®ãªã¯ãšã¹ãã§ãæ¡å ããã ããŸããïŒ
åœã®ããŒã¿ãéä¿¡ããå¿ èŠããããšæããŸããããããåœã§ããããšãæ確ã«ããŠãã ããã å Žæã®ååããAPIBusyãFake Dataããšãã倩æ°ã座æšãªã©ãã©ã³ãã ã«å¿çããŸãã ãã®ããã«ããŠã人ã ã¯çµæãæ£ç¢ºã§ãªãçç±ãç¥ã£ãŠããŸãã ããã§ãããã¹ãŠãéçºè ã«ãšã£ãŠã¯æ©èœããŸãã
èãïŒ
åœã®ããŒã¿ãéä¿¡ãããšãç¹å®ã®å Žæã®çŸåšã®æ°è±¡ããŒã¿ãæäŸãããšããç®çå šäœãç¡å¹ã«ãªããšæããŸãã ãã£ãã·ã¥ãäœæããŠå®è£ ããæ¹æ³ãç解ãããšãã@ joker314ã®ã¢ã€ãã¢ã奜ãã§ãã
æè¿ã®ãã©ãŒã©ã ãã£ã¹ã«ãã·ã§ã³ããããžã§ã¯ãããŒãžã«åºå®ããŠãã³ãŒããŒããããžã§ã¯ãã«åé¡ãããããšãèªèããèªåãã¡ãå¶åŸ¡ã§ããªãåé¡ãä¿®æ£ããããã«äžå¿ èŠãªæéãè²»ãããªãããã«ããããšãæ€èšããŠãã ããã
ãšããã§ã httpsïŒ//fcc-weather-api.glitch.me/ã§èª¬æãããŠããããã«ã icon
ã®ç»åURLã¯è¿ãããªããšæããŸãã
Images links are included in the JSON under weather[0].icon
ãšæžãããŠããŸããããããã§ã¯ãããŸããã
ãã¢ãœãªã¥ãŒã·ã§ã³ãã¢ã€ã³ã³ãæç»ããããã«cssãèšè¿°ããŠããããšã«æ°ã¥ããŸããã
ãã®æœåšçãªåé¡ã«ã€ããŠãç¥ããããã ãããããšãããããŸããããªã¯ãšã¹ããšå¿çã®äŸã«ã¯ç®çã®ãã£ãŒã«ããå«ãŸããŠããŸãã ãã®ãã£ãŒã«ãããªãç¹å®ã®ãªã¯ãšã¹ããããŸãããïŒ
@ joker314Thxè¿ä¿¡ããŠãã ããã
https://fcc-weather-api.glitch.me/api/current?lon=39.988&lat=116.3000
{"coord":{"lon":139,"lat":35},"weather":[{"id":803,"main":"Clouds","description":"broken clouds"}],"base":"stations","main":{"temp":28.23,"pressure":1011,"humidity":74,"temp_min":26,"temp_max":31},"visibility":10000,"wind":{"speed":3.6,"deg":230},"clouds":{"all":75},"dt":1499396400,"sys":{"type":1,"id":7616,"message":0.0043,"country":"JP","sunrise":1499369792,"sunset":1499421666},"id":1851632,"name":"Shuzenji","cod":200}
äŸãããŸãæ©èœããŠããããšã«æ°ã¥ããªãã£ãã®ã§ãããã¯å Žæãç¹å¥ãªå€©æ°ãåå ã§ããå¯èœæ§ããããŸããïŒ
@ Em-Antããã¯Glitchã§å®è¡ãããŠããã¢ããªã®åé¡ã®ããã§ãã ãã£ãã·ã¥ãèŠãŠããããã¯ãªã¢ã§ãããã®ãã©ããã確èªã§ããŸããïŒ
ç§ã¯ããã€ãã®ç°¡åãªãã¹ããè¡ããŸãããããã¯ä¿®æ£ããããšæããŸãã ããã§ãåé¡ã解決ããªãå Žåã¯ããã®åé¡ãå床éããŠãã ããã
@ moT01ã©ããªãã¹ããããŸãããïŒ åé¡ã¯ãOpenWeatherAPIã®åŒã³åºãã«äœ¿çšãããç¡æã®FCCã¢ã«ãŠã³ãããšã«ã¬ãŒãå¶éãããããšã§ãã ãããã®ã¬ãŒãå¶éã«éãããšãGlitchãããã·ã¯æ¥æ¬ã®åº§æšãè¿ããŸãã çŸåšåé¡ãšèŠãªãããŠããªãå¯äžã®çç±ã¯ããã®ãããžã§ã¯ããã«ãªãã¥ã©ã ã§ãªãã·ã§ã³ã«ãªã£ãŠããããã以åã»ã©ããããå°ãªãããšã§ãã 1åéã«ã°ãªããã60åããããããšããã«ã次ã®JSONãè¿ãããŸãã
{
"coord": {
"lon": 139,
"lat": 35
},
"weather": [
{
"id": 803,
"main": "Clouds",
"description": "broken clouds"
}
],
"base": "stations",
"main": {
"temp": 28.23,
"pressure": 1011,
"humidity": 74,
"temp_min": 26,
"temp_max": 31
},
"visibility": 10000,
"wind": {
"speed": 3.6,
"deg": 230
},
"clouds": {
"all": 75
},
"dt": 1499396400,
"sys": {
"type": 1,
"id": 7616,
"message": 0.0043,
"country": "JP",
"sunrise": 1499369792,
"sunset": 1499421666
},
"id": 1851632,
"name": "Shuzenji",
"cod": 200
}
ãã®åé¡ã¯ãŸã ä¿®æ£ãã¹ããããžã§ã¯ãã®ç§ã®ããããšãªã¹ãã«ããã®ã§ãåéã§ããŸããïŒ
ãããããã -ç§ã¯APIã«æ°åãã°ããé»è©±ããããæ£ãã倩æ°ãåŸãããšãã§ããã åé¡ã解決ããåã«ãããå°ã質åããå¿ èŠããããšæããŸãã
ç§ã¯Hacktoberfestã®éå§æã«ä¿®æ£ã«åãçµã¿å§ãããã®åŸQAããã»ã¹ã«æ·±ãé¢ãããŸããã æ®ãã¯æŽå²ã§ãã å®çšçãªãœãªã¥ãŒã·ã§ã³ãå®è¡ã§ããããã«ããã«ã¯ãNodeãšExpressã«ã€ããŠã®ç解ãæ·±ãŸã£ãã®ã§ããããããäžåºŠæ€èšããå¿ èŠããããŸãã
ãšã³ããªã1ã€ãããªãéçãã£ãã·ã¥ïŒæ¥æ¬ã®å ŽæïŒããããŸãã
ã¬ãŒããªããã¿ãŒãåé€ããŠä¿®æ£ãããïŒAPIããŒã1ã€ãããªãããããããè¯ãã¢ã€ãã¢ãã©ããã¯ããããŸããïŒããªã¯ãšã¹ãã®å²ãåœãŠãè¶ ããå Žåã«ã¬ãŒãå¶éãšã©ãŒãè¿ãããšãã§ããŸãã
ãšã«ãããã°ãªããã«é¢ãããã®apiãããžã§ã¯ãã¯@MiloATHãææããŠ
ãã£ã³ãã³ã°ã«ãŒãããã¢ã«ãŠã³ãã䜿çšããŠã httpsïŒ //glitch.com/edit/#ïŒ/ fcc-weather-apiã§Miloã«åå ãªã¯ãšã¹ããéä¿¡ããŸããã
ãããã¯è¯ãã¢ã€ãã¢ã®ããã«èãããŸãïŒ 3çªç®ã®ãªãã·ã§ã³ããããŸãã ããŒã¿ãå®éã«ããã«ä¿åãããããã«ãã£ãã·ã¥ãä¿®æ£ããããã¬ãŒããªããã¿ãŒã«éããå Žåã«ã©ã³ãã ããŒã¿ãéä¿¡ããŸãã
ãã®ãããªç¶æ³ã§ã¯APIããŒãåãæ¶ãããå¯èœæ§ãããããããã®å ŽåãAPIããçµæãåŸãããªãå¯èœæ§ããããããã¬ãŒãå¶éãè¶ ããããšã¯ãå§ãã§ããŸããã
@ joker314ç§ã¯ãã§ã«ããªãã®3çªç®ã®éžæè¢ã®æ¹åã«é²ãã§ããŸããã
ã°ãªãããããžã§ã¯ããžã®æåŸ ç¶ãæž¡ããŸããã
ãšã³ããã€ã³ãã¯å€§å¹ ã«æ¹åãããå¯èœæ§ããããŸãã CIã䜿çšããŠå¥ã®ãªããžããªãæ§ç¯ããHerokuïŒç¡æããŒãžã§ã³ïŒãªã©ã®ããæçãããã®ã«ãããã€ããå¿ èŠããããšæããŸãã ããã«ããããããžã§ã¯ãã§ããç°¡åã«äœæ¥ã§ããããã«ãªããŸãã
herokuã«ã¯ãããããã€ããŠããŸããã ä»ã®ãšããã°ãªããã䜿çšããŸãã ã€ãŸãã代æ¿ãããžã§ã¯ããããå Žåã¯ãGlitchã®freeCodeCampã®ã¢ã«ãŠã³ãã§å±éããã«ãªãã¥ã©ã ã®æ¢åã®èª²é¡ã眮ãæããããšãã§ããŸãã
@raisedadead @RandellDawson
ããã«ã¡ã¯ïŒ ããã«é¢ããæŽæ°ã¯ãããŸããïŒ
ã¢ãŒããã¯ãã£ãšããŒã¿ãããŒïŒãããŠæçµçã«ã¯é¢é£ãããã¡ã€ã«åïŒãå«ãããã€ãã®å³ãèŠãã®ã¯çŽ æŽãããããšã§ãã
@ Hash2Cæ¢åã®Glitchãããžã§ã¯ãïŒä»¥äžã«è¡šç€ºïŒããªããã¯ã¹ããŠããããžã§ã¯ãã衚瀺ããã³ä¿®æ£ã§ããŸãã
https://glitch.com/edit/#!/fcc -weather-apiïŒpath = server.jsïŒ1ïŒ0
@RandellDawsonã«æè¬ã
@ Hash2CæéããããŠæ£ãã
@RandellDawsonã«æè¬ã
çŸåšã®å¶çŽã«ã€ããŠããå°ãç¥ãå¿
èŠããããŸãã
1åããã60ãããã®å¶éãããããšãäžã§èªã¿ãŸãããããã¯ãOpenWeatherã®äŸ¡æ Œèšå®ã®ç¡ææ ã®ããã§ãã ãã®å¶éãå¢ããæ¹æ³ã¯ãããŸããïŒ OWãžã®ä»ã®ãµãã¹ã¯ãªãã·ã§ã³ãäœæãããã§ããïŒ OWãšäžç·ã«äœ¿çšã§ããä»ã®ç¡æã®ãä¿¡é Œã§ããæ
å ±æºãã¯ãããŸããïŒ
ç·šéïŒãŸããã©ã®ãããªçš®é¡ã®é 延ãæäŸããããšã蚱容ãããŸããïŒ 5åïŒ 15åïŒ 1æéïŒ 3æéïŒ
Edit2ïŒãã®è¡šã«ç€ºãããŠããããã«ãOWã®ãWeatherAPIããŒã¿ã®æŽæ°ãã¯ã<2æéãã®ããã§ã
https://openweathermap.org/price
åãè¡šãããå¯çšæ§ã¯95ïŒ
ã«ãããªãããšãããããŸã
ãã®å¶éãå¢ããæ¹æ³ã¯ãããŸããïŒ OWãžã®ä»ã®ãµãã¹ã¯ãªãã·ã§ã³ãäœæãããã§ããïŒ
ãŸããIPã¢ãã¬ã¹ã«å¶éãããå ŽåãããããïŒäžæïŒãä»ã®ãµãã¹ã¯ãªãã·ã§ã³ãäœæããŠã圹ã«ç«ã¡ãŸããã
OWãšäžç·ã«äœ¿çšã§ããä»ã®ç¡æã®ãä¿¡é Œã§ããæ å ±æºãã¯ãããŸããïŒ
ã¡ãã£ãšããããªãã
Edit2ïŒãã®è¡šã«ç€ºãããŠããããã«ãOWã®ãWeatherAPIããŒã¿ã®æŽæ°ãã¯ã<2æéãã®ããã§ã
ç§ã¯çŸåšãOpenWeatherã®ç¡æããŒãžã§ã³ã䜿çšããŠç¬èªã®æ°è±¡ãããžã§ã¯ããéçºããŠããããªã¯ãšã¹ããæåŸã®ãªã¯ãšã¹ããã10åæªæºãã©ããã確èªããŠãããåã緯床/çµåºŠã§æåŸã«è¿ãããããŒã¿ã衚瀺ããããšãæ€èšããŠããŸãã
ãã£ã¬ã³ãžã®æé ãæŽæ°ããŠãå¶éã«éããå Žåã«ç¹å¥ãªå¿çãè¿ä¿¡ããããšãéçºè ã«éç¥ããŠãããŒã¿ãææ°ã§ãªãå¯èœæ§ãããããšãã¢ããªãŠãŒã¶ãŒã«éç¥ã§ããããã«ããããšãã§ãããšæããŸãã ããã§ããçŸåšãšåãããŒã¿ãè¿ããããšæããŸãïŒFCC APIã䜿çšããŠå€ããããžã§ã¯ããå£ããªãããã«ããããïŒã å¿çã«ããããã£ãè¿œå ããã ãã§ãã ã©ãæããŸããïŒ
ããŒã«ã«ã§ã®ãã¹ããç°¡åã«ãªãããã«ããã®ãªããžããªãäœæããŸããã
https://github.com/Hash2C/fccWeatherApiDraft
ïŒä»ã®ãšããïŒ3ã€ã®äž»ãªãŠãŒã¹ã±ãŒã¹ã¯ãã§ã«ã«ããŒãããŠãããšæããŸã
elseïŒã¢ãã¯ããŒã¿ãç§ãã¡ã決å®ãããã®ãšããŠèšå®ããŸãïŒåŸã§OpenWeather apiåŒã³åºãã倱æããå Žåã«åããŠïŒã
OpenWeatherAPIãåŒã³åºãããšããŸãã
ãã¡ããããã®ãããŒã¯éåžžã«ãªãŒãã³ã§ãã
æ€èšŒãéåæåŠçããšããžã±ãŒã¹ïŒãã¹ãïŒãªã©ãããã¹ãããšã¯ãŸã ãããããããŸãããåŸã
ã«ããã«å°éããŠãããŸãã server.js
ãã¡ã€ã«ã«ããããã³ã¡ã³ãããŸããïŒæãããªãã§ãã ããïŒãååé¡ã«ã€ããŠè©±ãåãããšãã§ããããã«ããã®æ
å ±ã®ã»ãšãã©ãåŸã
ã«ãã£ã«ã¿ãªã³ã°ããããã§å©ããæ±ããŸãã
ãã ã®ã¢ã€ãã¢ïŒãOpenWeatherAPIïŒãŸãã¯ä»ã®APIïŒãžã®å©çšå¯èœãªãªã¯ãšã¹ãã®æ°ãæå°éã«æããããšããããŒã¿ãµãŒãã¹ãæçµçã«äœæã§ããã§ããããïŒã ãã®ãµãŒãã¹ã¯ãããšãã°ãMongoDBããŒã¿ããŒã¹ã«ãã£ãŒãããŸã-ããããã£ãã·ã¥ã«ãªããŸãïŒMemcachedã䜿çšã§ããŸãããå€åå€ãããã®ã§ããã®äœåãªé床ã¯å¿ èŠãããŸããïŒ
ãã®ä»ã®ã¢ã€ãã¢ïŒãã®ãµãŒãã¹ã®éå»ã®äœ¿çšçµ±èšã¯ãããŸããïŒ ããã§ãªãå Žåã¯ãæçµçã«ã¯å¯èœã§ãããéåžžã«æé©ã§ã¯ãªããœãªã¥ãŒã·ã§ã³ãæé©åããããã«ãäœæãéå§ããããšãã§ããŸãã
ç§ãç解ããããã«ç¢ºãã«ããã€ãã®å©ããå¿
èŠã«ãªãããšã®1ã€ã¯ããã®ã»ãã¥ãªãã£ã®åé¡githubãç§ã«èŠåããŠããããšã§ã
ïŒã©ããããããç§ã¯ããªãã®ã¡ãã»ãŒãžãå®å šã«éããŸããïŒïŒ
ãŸããIPã¢ãã¬ã¹ã«å¶éãããå ŽåãããããïŒäžæïŒãä»ã®ãµãã¹ã¯ãªãã·ã§ã³ãäœæããŠã圹ã«ç«ã¡ãŸããã
ããèŠç¹ãã ãã¹ããã䟡å€ã¯ãããŸããïŒ
OWãšäžç·ã«äœ¿çšã§ããä»ã®ç¡æã®ãä¿¡é Œã§ããæ å ±æºãã¯ãããŸããïŒ
ã¡ãã£ãšããããªãã
ãããèš±å¯ãããå Žåããœãªã¥ãŒã·ã§ã³ãæåããå¯èœæ§ãå€§å¹ ã«é«ãŸãå¯èœæ§ããããŸãã
ç§ã¯çŸåšãOpenWeatherã®ç¡æããŒãžã§ã³ã䜿çšããŠç¬èªã®æ°è±¡ãããžã§ã¯ããéçºããŠããããªã¯ãšã¹ããæåŸã®ãªã¯ãšã¹ããã10åæªæºãã©ããã確èªããŠãããåã緯床/çµåºŠã§æåŸã«è¿ãããããŒã¿ã衚瀺ããããšãæ€èšããŠããŸãã
ã¯ãããã£ãã·ã¥ãããããŒã¿ã䜿çšããŠããŸããïŒ ä»¥åã«èš±å®¹å¯èœãªé 延ã«ã€ããŠè³ªåããã®ã§ã2æéæªæºã®è³ªåãããŸããã é 延ãé·ããã°é·ãã»ã©è¯ãã®ã§ããã£ãã·ã¥ã«ãããããåæ°ãå¢ããAPIãé »ç¹ã«åŒã³åºãå¿ èŠããªããªããŸãã éå§ããããã ãã«ãæ倧1æéåã®ããŒã¿ãéä¿¡ã§ãããšæ³å®ããŠã³ãŒãã£ã³ã°ãéå§ããŸããã
ãã£ã¬ã³ãžã®æé ãæŽæ°ããŠãå¶éã«éããå Žåã«ç¹å¥ãªå¿çãè¿ä¿¡ããããšãéçºè ã«éç¥ããŠãããŒã¿ãææ°ã§ãªãå¯èœæ§ãããããšãã¢ããªãŠãŒã¶ãŒã«éç¥ã§ããããã«ããããšãã§ãããšæããŸãã ããã§ããçŸåšãšåãããŒã¿ãè¿ããããšæããŸãïŒFCC APIã䜿çšããŠå€ããããžã§ã¯ããå£ããªãããã«ããããïŒã å¿çã«ããããã£ãè¿œå ããã ãã§ãã ã©ãæããŸããïŒ
ç§ã¯ãéçºè ã«é¢é£æ å ±ãæäŸããéçºè ã«éžæããããšãããã®ã¢ã€ãã¢ã«å®å šã«åæããŸããããã¯ãç§ãæãé©åã§ãããšèããŠãããã¹ã§ããããŸãã
FCCãããžã§ã¯ãã§ãã¹ãããã³ãªã¯ãšã¹ããè¡ãããã®æšæºããŒã«ã¯ãããŸããïŒ
ç§ã䜿çšããŠãããªã¯ãšã¹ãã®å ŽåïŒAxiosã®ä»£ããã«è©ŠããŠã¿ãããšã«ãããšããçç±ã ãã§ïŒ
www.npmjs.com/package/request
ãã¹ãã«é¢ããŠã¯ããŸãçµéšããããŸããããã¢ã«ã®ããšãèããŠããŸããã
ãã ããã©ã®ããŒã«ãFCCãšããé©åã«çµ±åãããããæããŠãã ãã
ç§ãç解ããããã«ç¢ºãã«ããã€ãã®å©ããå¿ èŠã«ãªãããšã®1ã€ã¯ããã®ã»ãã¥ãªãã£ã®åé¡githubãç§ã«èŠåããŠããããšã§ã
æãç°¡åãªè§£æ±ºçã¯ã npm audit fix
ãå®è¡ããŠãããæŽæ°ãããpackage.json
ãšpackage-lock.json
ã³ãããããããšã§ãã æ°ããããã±ãŒãžã«ã¯ã以åã®è匱ãªããã±ãŒãžããã®é倧ãªå€æŽã¯ãããŸããã ãã ããããã¯ããã±ãŒãžã®äœæè
ã誀ã£ãŠé倧ãªå€æŽãå°å
¥ããŠããªãããšãåæãšããŠãããããä¿®æ£ãé©çšãããåŸãã¢ããªãæåã§ç¢ºèªãã䟡å€ããããŸãã
ç§ã¯OpenWeatherAPIã§éãã§ããŸãïŒå®éã«ã¯æåãããããè¡ãã¹ãã§ããïŒã
ç§ãã¡ã¯ãããç¥ã£ãŠããŸãããïŒ https://openweathermap.org/faq#error401
é¢é£éšå
FOSSéçºè åãïŒç¡æã®ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ãæè¿ããåãã§ãæäŒãããŸãã ç¡æã®ãœãããŠã§ã¢ã¢ããªã±ãŒã·ã§ã³ã§OWMããŒã¿ã䜿çšããå Žåã¯ãAPIããŒãç»é²ããã¢ããªã±ãŒã·ã§ã³ãšç»é²ãããŠããAPIããŒã説æãããã±ãããæåºããŠãã ããã OWMã¯ããªãŒãã³ãœãŒã¹ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããŠããå ŽåãããŒã®ãªã¯ãšã¹ããªããã¢ã¯ã»ã¹å¶éã確èªããŸãã
ããã«ã¡ã¯ã¿ããªãç§ã¯äºæ³ä»¥äžã«å¶çŽãããŠããŸãã
æãªãšãã¯ãOpenWeatherAPIãå匷ããŠããŸãã æ®å¿µãªãããããã¯ååã«ææžåãããŠããŸããã
bboxãªãã·ã§ã³ã䜿çšããŠå®è¡å¯èœãªæŠç¥ãæãã€ãããšæããŸããããŸã ãã¹ãäžã§ãã
ç§ãåºäŒã£ããã¹ãŠã®æ
å ±ãç§ãè¡ã£ãŠãããã¹ããå«ãããã¥ã¡ã³ããäœæãããšãããã®ã¢ã€ãã¢ãæãã€ããŸããã
@ Hash2CæéããããŠæ£ãã
@RandellDawson
ããªãã¯ããªããèšã£ãŠããããšãç¥ã£ãŠããŸããïŒheavy_check_markïŒ
@ Hash2Cãœãªã¥ãŒã·ã§ã³ã¯ã©ã®ããã«é²ãã§ããŸããïŒ
ãã®ãããžã§ã¯ãã¯èªèšŒã«å¿ èŠãªãããžã§ã¯ãã§ã¯ãªããªã£ããããäžè¬çã«ãã®ãããžã§ã¯ãã«åãçµãã§ãããŠãŒã¶ãŒã®æ°ãå€§å¹ ã«æžå°ããããããã®åé¡ã解決ããŸãã ããã«ãããAPIã®ã¬ãŒãå¶éã«éããã€ã³ã¹ã¿ã³ã¹ãå°ãªããªããŸããã