iT邦幫忙

DAY 15
3

emacs的30天學習筆記系列 第 22

emacs 做中學第二十二天:今天貼圖為主,把web service的感覺抓回來

  • 分享至 

  • xImage
  •  

昨晚發現有很多的不足,可能是對c語言的struct 用法不熟,也許一陣子沒用文字檔的剪貼編修功能,忘光了,因為都是用指令trace 程式,所以昨天寫code的部分進行的很不順利,模糊的感覺,因為實作不出來,更模糊了。

今天想把感覺抓回來,有邦友分享的XML SPY,看一下有trial版,只是下載後2百多mb,還好公司網路快,一回兒就下來了,但是大到令人不想用。想到之前有google到的soapui,除了pro版,還有open source版,下載下來1百多mb。 可以快快樂樂的貼圖混版面了。
http://sourceforge.net/projects/soapui-->open 版soapui下載處。

在windows安裝,就是下一步,下一步,就像在linux從source 安裝,要三步。

我裝在winxp上。run起來的介面。

使用方式,
把一個現成的web service。

複製連結。

在soapui 新增一個專案,貼上WSDL的連結,這時,soapui會幫你產生專案的名稱,不想改的,
就謝謝 soapui的幫忙。

然後,神奇的事,應該也不會很神奇,就是自動幫你產生request。

沒看到request,就把結點(+)打開,打開來就看到。
然後,去把request 點兩下,把開在右半邊的窗上。

然後就可以試了。

以邦友 antijava 分享時,有提到的geo ip,這個小服務,

我參考了台灣的ip 網址,輸入soapui裏,

可是都得到在美國註冊的信息。明明是在台灣分配的ip。還是筆者又理解錯誤了,

一連試好幾個,答案都沒變。這個畫面也體現了筆者只會用soapui的僅有的功能。
就是在圖中的req區輸入,在res區看結果。

再來是 soapui的get started(快速開始) ,裏的例子,

這是iana code 的例子,可能大家都理解iana code是什麼碼?在筆者不知道這個貼心的服務時,為了iana code 還google了好久。

這個WS http://www.mobilefish.com/services/web_service/countries.php?wsdl 有幾點注意事項,一是一個web 服務裏有3個小服務,一個不用傳參數,2個要傳參數。其中一個不用傳參數的,注意它的形別,如附圖,是

  <item xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[2]">
               <ianacode xsi:type="xsd:string">by</ianacode>
               <countryname xsi:type="xsd:string">Belarus</countryname>
            </item>

未完,晚上待續…

因為之後還是要用gsoap2來run,畢竟xsd,xml schema所定義的型別,要能夠和程式語言能夠對應,這並不是單純的array,而是array of struct(結構的陣列,結構裏有2個欄位),也可以算是array of 指標。而**"xsd:string[2]"比較難了解它表達的意思,是指2個字串欄位?還是指字串長度2**? 而C 語言沒有string這個型別,只有array of char .

而可以傳回array of struct,之後,對應到 資料庫的 row(record),就可以傳回
record set(dataset 資料集),畢竟目前 gsoap2的眾多範例中,還沒有連資料庫的,
而沒有連資料庫,總是讓人覺得少了真實世界的應用(real world app,real app)。

對soupUI 而言,它就是有辦法產生無誤的response 文件。

台灣的iana code是tw, 國家名是taiwan, 經度緯度是float的型別。

台灣的存在,不因邦交國的多少有所改變。別人怎麼看台灣並不重要,台灣人自己看重自己即可。

gsoap程式中比較難深刻的體會 ENVELOPE的感覺,而在soapUI反而更能深刻的感覺到,
client 發封信給server,server 回封信。

這是結構中有結構,結構中有結構陣列,昨天在try程式時,比較難意會,寫database的商用程式,誰還用struct,語言中都沒這個關鍵字了,大部分都是class為主,只是class裏只有data member沒有 method。

題外話,

想到之前學java web service的挫敗,現在gsoap2也沒容易到那裏,但是,少了java層層堆疊的架構。

命名空間,自定義型別的例子, 可參考邦友分享的文章,複習一下這些觀念。

而DRY, 不要重覆自己,其實,同時,也可以不要重覆別人,別人講得好,就參考別人就好。

例子,很多,而就我而言,只也會一招。其他不會了。

open 版的soap UI, 還會測試包的功能,邦友有興趣,就自行探索了。

小結:從事erp相關工作那麼久,web service最適合商業應用,但是多年來,真得就是沒在實務上用過。從漢康erp到tiptop。陰錯陽差,沒用過。不像其他邦友,已經用爛了,所以
在應用上,應該有不少理解錯誤的地方。請不吝賜教。

雖然soapUI也有附source,但是沒有動力在些分散注意力。只是看到java這幾年在UI上又精進不少。這種介面不提誰優誰劣的問題,就是覺得小小耳目一新。使用上很直覺。剛好夠筆者使用。


上一篇
emacs 做中學第二十一天: 找一些xmethods上的例子練習,一無所獲的晚上
下一篇
emacs 做中學第二十三天:加重編輯code
系列文
emacs的30天學習筆記38
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言