APIã®ãã¼ã¸ã§ãã³ã°ã¯éå±åå²ã§ããã®ãè¯ã - Hidden in Plain Sightã«ã¯ãã³ã¡ããã®ã§ãããRebuild: 35: You Don't Need API Version 2 (Kenn Ejima)ã§ãæ¬ä»¶ã«è¨åããã£ããããªã®ã§ãå°ãä¸è¬è«ãæ¸ãã¦ããããã¨æãã¾ãã â Web APIã®è¨è¨ååã«ã¤ã㦠ãããããè¯ãAPIã¨ã¯ã©ã®ãããªç¹æ§ããã¤ãã®ã§ããããï¼ãä¸è¬çã«ã以ä¸ã®ï¼ç¹ãæããããã¨æãã¾ãã æ¡å¼µã容æã§ãã æ¡å¼µæã«å¾æ¹äºææ§ãç ´å£ããªã ã¦ã§ãã®å ´åã¯ãããã«å ãã ã¹ã±ã¼ã©ãã«ã§ãã HTTPã«èµ·å ããåé¡ã«ä¸æã«å¯¾å¦ã§ãã ãã¨ãæ±ãããã¾ãã åï¼è ã¯ã¦ã§ãã«éããªãè¦ä»¶ã§ãããããæºããè¨è¨ææ³ã¨ãã¦ã¯ã ãªã¯ã¨ã¹ãããã³ã¬ã¹ãã³ã¹ã®ãã©ã¡ã¼ã¿ãæ¡å¼µå¯è½ã« äºææ§ãå£ãæ¡å¼µãå¿ è¦ãªå ´åã¯ãé¢æ°åãå¤ãã å¤ãé¢æ°ã¯å¾æ¥ã¨åãæ©è½ã
移転ãã¾ãã http://please-sleep.cou929.nu/20130121.html
AngularJS ã¸ã®æ¹å®ãå®äºãããmitsuruogãã§ãã AngularJS ã«éãã Single page application(以ä¸ãSPA)ãæ§ç¯ããå ´åãèªè¨¼(Authenticate)ã¨ãã®å¾ã® WebAPI ã§ã®è¨¼ææ å ±(Credential)ã®åã渡ãæ¹æ³ã«ã¤ãã¦æè¿æ©ãã§ãã¾ãã 調ã¹ã¦ããã Json Web Token(以ä¸ãJWT)ãå©ç¨ããæ¹æ³ãCookies vs Tokens. Getting auth right with Angular.JSã§ç´¹ä»ããã¦ãã¦ã試ãã¦ã¿ãã¨çµæ§ä½¿ãããã§ããã®ã§ç´¹ä»ãã¦ã¿ã¾ãã ç®æ¬¡ 1.WebAPI ã§ã®è¨¼ææ å ±ã®åã渡ãã®éè¦æ§ 2.Token ãå©ç¨ãã証ææ å ±ã®åã渡ã 3.å®ç¾ããããã®ã³ã¢æè¡ãJWT(Json Web Token)ã¨ã¯ 4.Token ãå©ç¨ããå ´åã®èª²é¡ãªã© ç§å¯éµã®ç®¡ç ãªãã¬ã
社å æ¥åã·ã¹ãã ã®WebAPIå®è£ ãèãã¦ã¿ã - ããã²ãã®éè¨ã§ä½æãããããªèªä½WebAPIã«ãObjective-Cããã¢ã¯ã»ã¹ããããã°ã©ã ãä½æãã¦ã¿ã¾ããã ã¬ã¹ãã³ã¹ã¯JSONã®ã¿å¯¾å¿ã¨ãã¾ãã Objective-Cããã®HTTPæ¥ç¶ã«ã¤ãã¦ã¯ãã®æ¬ã§ãã¡ããã£ã¨ç´¹ä»ããã¦ãã¾ããã ã¨ãã¹ãã¼ãObjective-Cããã°ã©ãã³ã° ?iOS/OS Xã®ã¡ã¢ãªç®¡çã¨ãã«ãã¹ã¬ãã? ä½è : åæ¬ä¸æ¨¹åºç社/ã¡ã¼ã«ã¼: ã¤ã³ãã¬ã¹çºå£²æ¥: 2011/11/18ã¡ãã£ã¢: åè¡æ¬ï¼ã½ããã«ãã¼ï¼è³¼å ¥: 8人 ã¯ãªãã¯: 343åãã®ååãå«ãããã° (25件) ãè¦ãã¬ã¹ãã³ã¹ãBlocksã§å¦çã§ããããã«ãªã£ã¦ããã¨ä¾¿å©ããã§ãã "AsyncURLConnection"ã§æ¤ç´¢ããã¨ããã£ã½ãã©ã¤ãã©ãªãããã¤ãããããã¾ãããä»åã¯ããã使ã£ã¦ã¿ã¾ããã ASyncUR
ãã®è¨äºã¯Pepabo Advent Calendar 2014ã®11æ¥ç®ã®è¨äºã§ãã åæ¥ã¯ãtnmtããã®Vagrantã®shell provisionerã§Apacheã®ãã«ãæ¸tarãã¼ã«ãOSãã¼ã¸ã§ã³æ¯ã«ä½ãè¡ã§ããã ã¯ããã« ä»åã¯ãWeb APIãä½ãã¨ãã«èãããã¨ãã¾ã¨ãã¾ããã æ¬å½ã¯ã社å åãã«è³æãä½ã£ã¦ãã¦ã社å ã®åå¼·ä¼ã¨ãã§è©±ããã°ããããã£ã¦èãã¦ãããã§ãããã¢ããã³ãã«ã¬ã³ãã¼ã®ãã¿ãæ¬å½ã«ãªãã¦å°ã£ã¦ããã®ã§ããã使ãã¾ãã 対象è APIãä½ãæãã¨æ¸ãã¦ã¾ãããã¯ã©ã¤ã¢ã³ãå´ã®äººã«ã¨ã£ã¦ãç¥ã£ã¦ããå¿ è¦ããããã¨ãªã®ã§ããµã¼ãå´ã®äººã»ã¯ã©ã¤ã¢ã³ãå´ã®äººä¸¡æ¹ã対象è ã§ãã APIãä½ãã¨ãã«èããã㨠ãAPIãä½ãã¨ããã¨è¨ã£ã¦ããè²ããªç¶æ³ãããã¾ãã ã¾ãã¯ãããçµãã¾ãã APIã®ç¨®é¡ ãã©ã¤ãã¼ãAPI ã¢ããªã®APIãªã©ä½¿ã人ãéå®ãã
JSONPã£ã¦ãã¯ãã¹ãã¡ã¤ã³ã§ãã¼ã¿ãã¨ã£ã¦ããã¦ãWeb APIã¨ãã¯ããã§å®è£ ããã¦ãããã§ããã ãªãã¨ãªããããæ°ããããã ãã©ãèªåã§ä½ã£ã¦ã¿ãã¨ãªãããã¾ãåããªãã ãããã¯ãã®æåã§ãã©ããã風ã«å®è£ ãã¦ãããããããªãã ã¨ãã«èªåãAPIãæä¾ããå´ã«ãªãã¨ããããããããããªãã Wikipediaã®è§£èª¬ãªããããããããããªããã ãããªæãã®æ¹ã¯ãã¾ãããã ã¨ããããã¡ãã£ã¨åã®èªåã¯ãããªæãã§ããã ããããªãµã¤ãã調ã¹ã¾ãã£ã¦ãããç¨åº¦ããã£ã¦ããæ°ããã¾ãã®ã§ãå¾ã®ããã«ããã«æ®ãã¦ããã¾ãã ããããã®ããã®èªåã«æãã¦ããããã£ãã ã¾ãJSONã£ã¦ä½ãï¼ JSONPã«ãã©ãçãã人ã¯JSONã®ãã¨ã¯ç¥ã£ã¦ããã¨æãã¾ããããç°¡åã«ã ãããªæãã®ãããã¹ããã®ãã¨ã§ãããã { "key1": "value1", "key2": "value2"
BaasBoxã¨åæ§ã«ããªã¼ãã³ã½ã¼ã¹ã®mBaaSã§ããApache Usergridã«ã¤ãã¦èµ·åããã¦ãã°ã¤ã³ããã¾ã§ã®æé ã試ããã ããã¤ã¯ã©ã³ãã£ã¼ã§GUIã使ãã®ã§ãVagrantç°å¢ã§ããã£ã¨ã§ããCLIç°å¢ã§ã¯ãªãæ®éã®VMç°å¢ã§è©¦ãã¨è¯ãããã ãã¦ã³ãã¼ã&èµ·å http://usergrid.incubator.apache.org/docs/getting-up-and-running-locally/ ã®ã¨ããé²ããã æºåã¨ãã¦JDK 1.7ã¨mavenãå¿ è¦ã¨ããããå¥ä»¶ã§JDKã¯å ¥ãã¦ããã®ã§çç¥ã Ubuntuãªã®ã§mavenã¯ã¨ãããããããªæãã§å ¥ããã $ sudo apt-get install maven $ mvn -v Apache Maven 3.0.4 Maven home: /usr/share/maven Java version: 1
楽観çæä»å¶å¾¡ãå©ç¨ããéåæçãªãã©ã³ã¶ã¯ã·ã§ã³å®è¡ã§ããã°ã¹ã±ã¼ã©ããªãã£ãæãããã¨ãªã2phase commitãå¯è½ã§ãããããã¯ãåæ£KVSã«ãããã¹ã±ã¼ã©ããªãã£ã¨ä¸è²«æ§ã®ä¸¡ç«ã«ã¤ãã¦Â ã§ä¸»å¼µããããã«ãåæçãª2phase commitã¯å¯çµåã«èªå°ãããã¨ã«ãªããããçç¾ããããã«æãããããããªããã ããããªãã¨ã¯ãªãã ååã¯ã¾ããã®è©±ããå ¥ãããå¾åã§ã¯RESTã«é¢ããééãã«ã¤ãã¦ãï¼ã¤ã»ã©æãã¨ãããè¿°ã¹ããã 楽観çæä»å¶å¾¡ã¨2phase commit reflexworksã§ã¯FeedãEntryåä½ã§atomicãªãã©ã³ã¶ã¯ã·ã§ã³å¦çãè¡ããã2phase commitã¯ãµãã¼ããã¦ããªããããã許ãã¨å¯çµåã«ãªã£ã¦ã¹ã±ã¼ã«ããªãããã§ãããã ããããã¯ããã¾ã§åæçãªå¦çã®è©±ã§ãã£ã¦ããããã¯ã¼ã¯é害ã¸ã®èæ§ãèæ ®ãããéåæå¦çããªãã©ã¤ã³ã§ä½¿ããã®ã§
åæ(æ稿æ¥ï¼2013/05/26)ã¸ã®ãªã³ã¯ æ°å¹´åãGanesh Prasadæ°ã¯ã¤ã³ã¿ã¼ãããã¯RESTããåºç¤çãã©ãããåããããã®å¾ãæ°ã¯RESTãSOAãæè¿ã¯ã¯ã©ã¦ãã«ã¤ãã¦ãRESTã®ååãæ¯æããªããè°è«ãç¶ãã¦ãããè¿é ãLinkedIn REST Architectsã°ã«ã¼ãã«ãã¹ãããã"RESTã®æ¬ ç¹ã¯ä½ã?"ã¨ãã質åã«å¯¾ãã¦ãæ°ã¯æ¬¡ã®ããã«ãèªèº«ã®ããã°ã®å 容ãç¹°ãè¿ããã¨ã§çãã¦ããã RESTã«ã¯"æ¬ ç¹"ã®ãããªãã®ãããã¨ã¯æãã¾ãããRESTã¯RESTã¨ããåã示ãéãã«ä¸æãåä½ãã¦ãã¾ããããããRESTã¢ã¼ããã¯ãã£ã®å®è£ ã¯HTTPãããã³ã«ãã使ããªããã¨ã¯è¦ãã¦ããã¹ãã§ããå°æ¥ã¯ä»ã®ãããã³ã«ã使ãå®è£ ãæ§æ³ãããã¨ãã§ããã§ããããããã§ã¯ä½ãããã®æ¹åãè¡ãããã¯ãã§ãã æ°ã¯ç¶ãã¦ãæ¹åã®ä½å°ããã4ã¤ã®é åã«ã¤ãã¦è©±ããã¡ãªã¿ã«æ°
Rubyã§ç°¡åãããã·ã¥ã¢ãããµã¼ãã¹ãå ¬éãã¦ã¿ããï¼Â  - 第2å - ç°¡åSinatraï¼WebAPIã»OAuthèªè¨¼ã使ã£ã¦ã¿ãã ä»åã®ã¯ã¼ã¯ã¯ãååå¦ãã ãSinatra Frameworkãã¨ãRubyããå¿ç¨ããçããã使ã£ã¦ã¿ããTwitter APIã使ç¨ããã½ã¼ã¹ã³ã¼ããæåºããã¨ãããã®ã§ãããã®è¨äºã§ã¯ãªã¼ãã³ã½ã¼ã¹ã©ã¤ãã©ãªã®Rubygemsã®ä½¿ãæ¹ã解説ãã¦ããã®ã§ãåèã«èª²é¡ã«ãã£ã¬ã³ã¸ãã¦ã¿ã¦ãã ããã 第1åç®ã ã£ãååã¯ããRubyè¨èªãã¨ã¯ä½ããããã¦Ruby Frameworkã§ãããSinatraãã¨ã¯ä½ãã«ã¤ãã¦ã話ããå¾ãç°¡åã«ã³ã¼ãã£ã³ã°ã®ä»æ¹ã«ã¤ãã¦ãä¼ããã¾ããã 第2åç®ã¨ãªãä»åã¯ããªã¼ãã³ã½ã¼ã¹ã©ã¤ãã©ãªã§ãããRubygemsãã¨ãååå¦ãã ãRubyãã¨ãSinatraããå©ç¨ãã¦ãWebAPIãOAuthèªè¨¼ã®å©ç¨æ¹æ³ãã
第8ç« ããã·ã¥ã¢ãã ã»ãã¥ãªãã£ãã¼ã¯ã³ã¨OAuth 2.0 OAuth 2.0ã¯ãã¢ã¯ã»ã¹èªå¯ã®å¤æçµæï¼èª°ã ã¯ãã©ãããã®ãªã½ã¼ã¹ã«ã¢ã¯ã»ã¹ãã¦ããã¨ãããã¨ï¼ããããã¯ã¼ã¯è¶ãã«å®å ¨ã«ä¼éãããã¨ãç®çã¨ãããããã³ã«ä»æ§ã§ããããã®ãããã³ã«ä»æ§ãå ¬å¼ã«è¦å®ãã RFC 6749,âThe OAuth 2.0 Authorization Frameworkâ ã2012å¹´10æã«çºè¡ãããã ããã·ã¥ã¢ããã«ä½¿ãããç´ æãµã¼ãä¸ã®ãªã½ã¼ã¹ããè³æ ¼ããã¦ã¼ã¶ã«å¯¾ãã¦ã®ã¿é示ããããã«ä¿è·ãã¦å¶å¾¡ããæ¡ä»¶ã«ããã¦ãOAuth 2.0ã¯æç¨ãªæ段ã¨ãªãã ã»ãã¥ãªãã£ãã¼ã¯ã³ã¨å¼ãæãã«ãªã½ã¼ã¹ãå¾ãæ§å³ ããã·ã¥ã¢ããã«çµã¿å ¥ããã²ã¹ããªã½ã¼ã¹ã«ã¯ãæåã®ãã®ãå®ç§æ§ã®é«ããã®ãããå¾ãããã®ãããªãªã½ã¼ã¹ãæä¾ããç´ æãµã¼ãã¯ãé常ãã¢ã¯ã»ã¹å¶éãè¨ããããããä¿è·ããããã«ãã
ä»ã¾ã§ä»äºä¸ãæ¥åã·ã¹ãã ãéçºãã¦ãã¾ãããããã©ã¦ã¶ã§ã¢ã¯ã»ã¹ããWebã¢ããªã±ã¼ã·ã§ã³ã°ããã§ããã ãã°ããã¯Webã¢ããªéçºãç¶ãã§ãããããããããã¿ãã¬ãã端æ«ãä¼ç¤¾ã§æ´»ç¨ããæµããåºã¦ããã®ã§ã ãã£ããéçºããWebã¢ããªã«ã¿ãã¬ãã端æ«ããã§ãã¢ã¯ã»ã¹ã§ããããã«ãWebAPIã®å®è£ ã«ã¤ãã¦èãã¦ã¿ã¾ããã ãªãjQueryMobileãªã©ã使ã£ãWebã¢ããªã«ããé¸æè¢ãããã¾ãããããã¯ããã¦JSON/JSONPãè¿ãWebAPIã®å®è£ ãèãã¾ãã ä»æ§ http/httpsã¢ã¯ã»ã¹ã§ãããã®ã¨ããã¬ã¹ãã³ã¹ã¯JSON/JSONPã§é¸æã§ããã æ¥åã·ã¹ãã ãªã®ã§ãèªè¨¼ãããã èªè¨¼ã¯ä¸åº¦è¡ã£ãããã°ã¢ã¦ããªã©ãããªãéãç¶ç¶ããã èªè¨¼é¨åã¯ãªãã¹ãç°¡åã«ç¬èªå®è£ ã ãã°ã¢ã¦ããå¯è½ã ã·ã¹ãã ã®å©ç¨ã¦ã¼ã¶ã¼ãå¤æ´ããå ´åã¯ãã°ã¢ã¦ããã¦åãã°ã¤ã³ã ã¨ã©ã¼ãçºç
WebAPIã®å ¬é APIã¨ã¯ãä½ããã®æ©è½ãæä¾ããããã°ã©ã ã®ãã¨ã§ããWebAPIã¨ã¯ãWebã§æä¾ãããAPIã¨ãããã¨ã§ãããã¨ãã°ãå°å³ãã¼ã¿ãæä¾ããAPIãååã®æ¤ç´¢çµæãæä¾ããAPIãæåã§ãããªãã¹ãå¤ãã®äººã«ã¢ã¯ã»ã¹ãã¦ã»ããæ å ±ãæã£ã¦ããä¼æ¥ã¯ãWebAPIã¨ãã¦æ å ±ãæä¾ãããã¨ãå¤ããªãã¾ãããWebAPIã¨ãã便å©ãªã¤ã³ã¿ã¼ãã§ã¼ã¹ãç¨æãããã¨ã§å¤ãã®ã¦ã¼ã¶ã«ã¢ã¯ã»ã¹ãã¦ããããåºåãã¸ãã¹çã«ã¤ãªãã¦ããã®ãçãã§ãã ã¾ãWebAPIã¯ãå¤ãã®å½¢å¼ã«å¯¾å¿ãã¦ããã»ãããå¤ãã®ã¦ã¼ã¶ã«å©ç¨ãã¦ããããã¨ãã§ããããããªãã¹ãå¤ãã®åºåå½¢å¼ã«å¯¾å¿ãããã¨ããå¾åãããã¾ãã以åã¯SOAPã¨ããå½¢å¼ãå¤ã使ããã¦ãã¾ããããå®è£ æ¹æ³ãç ©éã§ãã£ããããç¾å¨ã§ã¯RESTãJSONãJSONPã®ããã«å®è£ ãã·ã³ãã«ãªå½¢å¼ã®ãã®ãå¤ã使ããã¦ãã¾ãã WebAP
æè¿ãWeb APIã®èªè¨¼ãã©ããã¹ããèãã¦ããã ä¾ãã°æ¬¡ã®ãããªã±ã¼ã¹ãã©ããããã ãæ¢åã®Webãµã¤ãããããæ¢ã«ã¦ã¼ã¶ï¼©ï¼¤ã¨ãã¹ã¯ã¼ãã«ããèªè¨¼ã«ãã£ã¦ããã©ã¦ã¶ã§ãã¼ã¿ãæä¾ãã¦ããã ä»åããã®æä¾ãã¼ã¿ããã©ã¦ã¶ã®ç»é¢ã§ã¯ãªããREST APIã«ã¦åå¾å¯è½ã«ãããã ãã®ãã¼ã¿ã¯ã¦ã¼ã¶æ¯ã«åå¾å¯è½ãªå¤ãéãã®ã§ãèªè¨¼ãã¾ãã¯èªå¯ã«ãã£ã¦å¶éããããããã ã¦ã¼ã¶ã¼ããã©ã¦ã¶ããIDã¨ãã¹ã¯ã¼ã(以ä¸ID/PW)ã使ã£ã¦ãã°ã¤ã³ããæ¹å¼ãããã®ã¾ã¾Web APIã«ãé©ç¨ãã¦ãå®å ¨ãªã®ã ãããã Web APIã®å ã«ã¯ã¹ããã¢ããªãã·ã§ã«ã¹ã¯ãªãããªã©ããç´æ¥ãã°ã¤ã³ãããã®ãªã©ãèããããããå®å ¨ãã¤ã·ã³ãã«ã«å®è£ ããã«ã¯ã©ããããããã®ã ãããã ç§ã¯ã»ãã¥ãªãã£ã®å°é家ã§ã¯ãªãã®ã§ééã£ãèãæ¹ããã¦ããå¯è½æ§ããããã誰ãã®ç®ã«çã¾ã£ã¦å©è¨ããã ãããããããªãã®ã§ã
ãç¥ãã
é害
ã©ã³ãã³ã°
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}