api定義也許很簡單,但是要做到可擴充套件性強,呼叫簡單統一,還是要花一些心思。
下面總結一下ruby設定乙個靈活api架構的思路和樣例:
需求:整合["google", "yahoo", "baidu"]等的介面呼叫。
思路:一:最外層定義乙個api.rb型別請求**模組test::api,按照searche_type欄位屬性的請求型別定向到對應的api請求檔案包。(如test::api::baiduapi)
二:在如test::api::baiduapi檔案包內定義api.rb來響應對應的請求分發。
三:在如test::api::baiduapi檔案包內定義keword_service.rb類來響應具體keywordservice的方法事件請求處理。(同理還可以定義campaign_service.rb等)
呼叫示例:
se=searcher.find(1)
#其中se.searche_type="baidu"
srve="keword"
row_count = se.api.service(srvc).download_report(campaign_ids, nil, start_date, end_date)
總結:由於不同api的實際實現邏輯不一樣,所以為實現可擴充套件性,在設計上將各個api的業務邏輯分開管理,但是在呼叫介面處理上,實現了統一排程。
乙個簡單API設計
用乙個紅綠燈來學習jsapi的設計 css trafficlight li trafficlight span trafficlight.stop li nth child 1 span trafficlight.wait li nth child 2 span trafficlight.pass ...
設定乙個鬧鐘
要求 通過繼承clock類實現活鬧鐘類alarmclock,該類具有設定時間 設定鬧鈴時間 按秒顯示時間 鬧鈴等功能。例如 alarmclock myclock h,m,s myclock.setalarmtime ah,am,as myclock.start 執行程式,計算機在同一位置顯示 8 5...
乙個API攔截的例子
閒來無事,做乙個api攔截的簡單程式,目標是攔截exploer.exe的createprocess.當開啟桌面程式時,執行自定義的 首先需要確認的是,explorer.exe建立程序是用了什麼函式,建立程序自然想到用createprocess createprocessa,createprocess...