jojo's blog--快樂憂傷都與你同在
          為夢想而來,為自由而生。 性情若水,風起水興,風息水止,故時而激蕩,時又清平……
          posts - 11,  comments - 30,  trackbacks - 0
          Long weekends reduce brain cells to jelly.  Worked on a few things over the weekend, nothing really to report except write down this simple example.

          The next book has far too many XML chapters in it, or at least it seems that way at the moment.  I had a good anti-WS-bloat rant in Amsterdam recently.  In a nutshell: most of the web services stack is bloatware that doesn't get used for most applications.  90% of the time you can get away with knowing no SOAP, WSDL, or any of that stuff.  You can just use REST - Representational State Transfer.  This is basically an HTTP GET request with parameters, and in return you get an XML document, in other words XML over HTTP.   It works very nicely and is simple.  I was trying to explain this to somebody here at work, so I wrote a very basic REST server/client pair in PHP in five minutes to demonstrate.  Here's the code, which is doubled in size due to comments.

          REST server for imaginary stock price lookup

          restserver.php


           1 <?php
           2 
           3   // check which stock we want to look up
           4   $stock = $_GET['stock'];
           5 
           6   // look up the stock
           7   $price = lookup($stock);
           8 
           9   // format stock quote as XML
          10   $string = "<stockquote><stockprice>$price</stockprice></stockquote>";
          11 
          12   // make it into a proper XML document with header etc
          13   $xml = simplexml_load_string($string);
          14 
          15   // send an XML mime header
          16   header("Content-type: text/xml");
          17 
          18   // output correctly formatted XML
          19   echo $xml->asXML();
          20 
          21 // that's the end of the main code, function below is just a stub
          22 
          23   function lookup($s)
          24   {
          25     // all stocks are worth $1 for this basic example
          26     // but you would look it up in a database if you had one
          27     return 1;
          28   }
          29 

          REST client demo

          restclient.php


           1 <?php
           2 
           3 // query the REST server and load the returned XML as a PHP object
           4 // note parameters go to REST server as HTTP GET parameters
           5 $stock='MSFT';
           6 
           7 $xml = simplexml_load_file("http://localhost/demo/restserver.php?stock=$stock");
           8 
           9 echo "$stock stock price today is ";
          10 echo $xml->stockprice;
          11 
          12 ?>
          13 
          14 

          Basically you don't need to know anything about Web Services or even XML to make and consume REST Web Services.   This assertion greatly irritates a lot of people.

          I'm not saying there isn't a need for SOAP and WS-*, just that often simple tools will do the job.  It's just another version of the 80% rule.  This seems to be a theme in my personal consumption of technology.


          posted on 2008-10-07 21:16 Blog of JoJo 閱讀(1333) 評論(0)  編輯  收藏 所屬分類: Linux 技術相關

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(6)

          隨筆檔案

          文章分類

          文章檔案

          新聞分類

          新聞檔案

          相冊

          收藏夾

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宜川县| 永和县| 随州市| 苏尼特左旗| 华池县| 滨海县| 沙田区| 柯坪县| 汝州市| 丰宁| 晋江市| 临清市| 保山市| 灌云县| 桐城市| 增城市| 金沙县| 凭祥市| 拜泉县| 牙克石市| 武陟县| 黄龙县| 禹州市| 江永县| 南汇区| 静海县| 河东区| 纳雍县| 金湖县| 特克斯县| 衢州市| 浪卡子县| 利津县| 和平区| 新泰市| 澄城县| 霸州市| 衡东县| 和静县| 巴彦淖尔市| 昌吉市|