鈥淯RI 鍞竴鏍囪瘑涓涓祫婧愨?/strong>鐨勫畾涔夈傚鏋滄垜浠鑾峰彇鍚屼竴涓祫婧愮殑澶氱琛ㄧ幇褰㈠紡錛岄偅涔堝氨瑕佷嬌鐢ㄦ洿澶氱殑 URL錛屼粠鑰岀粰涓涓祫婧愭寚瀹氫簡澶氫釜涓嶅悓鐨?URI銆?/p>
鑰屽湪 REST 涓紝涓嶇鏄幏鍙栫収鐗囩殑 xhtml 鏂囨。榪樻槸 XML 鏂囨。錛屾垨鑰呯収鐗囨枃浠舵湰韜紝閮芥槸鐢ㄥ悓涓涓?URI錛屽氨鏄?http://www.example.com/photo/logo銆?/p>
閭h繖鏄庝箞鍔炲埌鐨勫憿錛烺uby On Rails 涓槸閫氳繃鍒嗚鯨 HTTP Request Header 淇℃伅鏉ュ垎杈ㄥ鎴風鏄兂瑕佸彇寰楄祫婧愮殑鍝竴縐嶈〃鐜板艦寮忕殑鏁版嵁銆?/p>
褰撴垜浠敤嫻忚鍣ㄨ闂竴涓綉鍧鏃訛紝嫻忚鍣ㄤ細鏋勯犱竴涓?HTTP 璇鋒眰銆傝繖涓姹傛湁涓涓ご淇℃伅錛屽叾涓寘鎷簡鏈璇鋒眰鎺ュ彈浣曠綾誨瀷鐨勬暟鎹傞氬父嫻忚鍣ㄥ彂閫佺殑 HTTP 璇鋒眰澶翠腑錛孉ccept 鐨勫奸兘鏄?*/*錛屼篃灝辮鎺ュ彈鏈嶅姟鍣ㄨ繑鍥炵殑浠諱綍綾誨瀷鐨勬暟鎹?/p>
鐪嬪埌榪欓噷錛岃仾鏄庣殑瀹朵紮搴旇鐭ラ亾浜嗐傚彧瑕佹垜浠寚瀹氫竴涓壒瀹氱殑 Accept 鍙傛暟錛岄偅涔堟湇鍔″櫒灝卞彲浠ラ氳繃鍒ゆ柇璇ュ弬鏁版潵鍐沖畾榪斿洖浠涔堢被鍨嬬殑鏁版嵁銆傛墍浠ュ湪涓涓噰鐢?REST 鏋舵瀯鐨勫簲鐢ㄤ腑錛岃鑾峰彇鍚屼竴涓祫婧愮殑涓嶅悓琛ㄧ幇褰㈠紡鐨勬暟鎹紝鍙渶瑕佷嬌鐢ㄤ笉鍚岀殑 HTTP 璇鋒眰澶翠俊鎭氨琛屼簡銆?/p>
濡傛灉鑰冭檻涓?Web 搴旂敤澧炲姞 Web Services錛岃繖縐嶆妧鏈殑浠峰煎氨浣撶幇鍑烘潵浜嗐傛瘮濡傛垜鍐欎簡涓涓?Delphi 紼嬪簭錛岀幇鍦ㄥ彧闇瑕佹瀯閫犱竴涓寘鍚?Accept: text/xml 鐨?HTTP 璇鋒眰澶達紝鐒跺悗灝嗚姹傚彂閫佸埌 http://www.example.com/photo/logo 灝卞彲浠ヤ簡銆傝繑鍥炵殑緇撴灉灝辨槸涓涓?XML 鏂囨。錛岃屼笉鏄?xhtml 鏂囨。銆?/p>
鍥犱負鎴戜滑鐨?HTTP 璇鋒眰澶翠俊鎭湁涓嶅悓鐨勭姸鎬侊紝浠庤屽彲浠ヨ幏寰椾笉鍚岀殑鏁版嵁錛屾墍浠ュ彨鍋氣滃叿璞$姸鎬佷紶杈撯?
鈥斺斺斺斺斺斺斺斺斺斺斺斺?/p>
闄や簡涓婇潰鐨勭敤娉曪紝REST 榪樻湁榪涗竴姝ョ殑鎵╁睍銆?/p>
鎴戜滑鍦?Web 搴旂敤涓鐞嗘潵鑷鎴風鐨勮姹傛椂錛岄氬父鍙冭檻 GET 鍜?POST 榪欎袱縐?HTTP 璇鋒眰鏂規硶銆傚疄闄呬笂錛孒TTP 榪樻湁 HEAD銆丳UT銆丏ELETE 絳夎姹傛柟娉曘傝屽湪 REST 鏋舵瀯涓紝鐢ㄤ笉鍚岀殑 HTTP 璇鋒眰鏂規硶鏉ュ鐞嗗璧勬簮鐨?CRUD錛堝垱寤恒佽鍙栥佹洿鏂板拰鍒犻櫎錛夋搷浣滐細
- POST: 鍒涘緩
- GET: 璇誨彇
- PUT: 鏇存柊
- DELETE: 鍒犻櫎
緇忚繃榪欐牱鐨勪竴鐣墿灞曪紝鎴戜滑瀵逛竴涓祫婧愮殑 CRUD 鎿嶄綔灝卞彲浠ラ氳繃鍚屼竴涓?URI 瀹屾垚浜嗭細
http://www.example.com/photo/logo錛堣鍙栵級
浠嶇劧淇濇寔涓?[GET] http://www.example.com/photo/logo
http://www.example.com/photo/logo/create錛堝垱寤猴級
鏀逛負 [POST] http://www.example.com/photo/logo
http://www.example.com/photo/logo/update錛堟洿鏂幫級
鏀逛負 [PUT] http://www.example.com/photo/logo
http://www.example.com/photo/logo/delete錛堝垹闄わ級
鏀逛負 [DELETE] http://www.example.com/photo/logo
浠庤岃繘涓姝ヨ鑼冧簡璧勬簮鏍囪瘑鐨勪嬌鐢ㄣ?/p>
閫氳繃 REST 鏋舵瀯錛學eb 搴旂敤紼嬪簭鍙互鐢ㄤ竴鑷寸殑鎺ュ彛錛圲RI錛夋毚闇茶祫婧愮粰澶栭儴涓栫晫錛屽茍鎻愪緵瀵硅祫婧愮殑鎿嶄綔鏈嶅姟銆傝繖瀵逛簬浠ヨ祫婧愪負涓績鐨?Web 搴旂敤鏉ヨ闈炲父閲嶈銆備緥濡傜収鐗囧叡浜綉绔欍佺敤鎴風ぞ鍖虹瓑銆?/p>
鈥斺斺斺斺斺斺斺斺斺斺斺斺?/p>
Ruby On Rails 1.2 鐗堝 REST 鏈夊緢濂界殑鏀寔錛屼絾瑕佸湪 PHP 涓簲鐢?REST 榪橀渶瑕佽В鍐充笉灝戦棶棰橈細
- 濡備綍鍦ㄦ湇鍔$鍒ゆ柇 PUT銆丏ELETE 璇鋒眰鏂規硶錛?
- 濡備綍鑾峰彇鐢?PUT銆丏ELETE 璇鋒眰鏂規硶涓紶閫掔殑鏁版嵁錛?
- 濡備綍鑾峰彇 HTTP 璇鋒眰澶翠俊鎭腑鐨?Accept 鍙傛暟鍊鹼紱
- 濡備綍鍦ㄦ祻瑙堝櫒绔彂璧?PUT 鍜?DELETE 璇鋒眰銆?
涓嶈繃鎴戜粩緇嗙湅浜?PHP 鏂囨。錛屾垜瑙夊緱涓婇潰鍑犱釜闂閮芥槸鍙互瑙e喅鐨勩?/p>
鏈嶅姟绔患鍚堜嬌鐢?$_SERVER[鈥橦TTP_ACCEPT鈥橾銆?_SERVER[鈥橰EQUEST_URI鈥橾銆?_SERVER[鈥橰EQUEST_METHOD鈥橾銆?_SERVER[鈥橯UERY_STRING鈥橾 榪欎簺鍙橀噺搴旇鍙互鎼炲畾鍓嶉潰涓変釜闂銆傝岀鍥涗釜闂鍒欏彲浠ョ敤 JavaScript 鐨?XMLHttpRequest 瀵硅薄鏉ュ疄鐜般?/p>
涓嶈繃鎴戞兂 REST 鐨勭湡姝d環鍊煎湪浜?Web Services錛岃屼笉鏄氳繃嫻忚鍣ㄦ搷浣滅殑搴旂敤紼嬪簭銆?/p>
鈥斺斺斺斺斺斺斺斺斺斺斺斺?/p>
鍙傝冿細