昨晚發現有很多的不足,可能是對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上又精進不少。這種介面不提誰優誰劣的問題,就是覺得小小耳目一新。使用上很直覺。剛好夠筆者使用。