只需五步,快速構(gòu)建基于終端環(huán)境的API
譯文【51CTO.com快譯】您想通過五個(gè)簡單的步驟,來快速地在任意基于終端的環(huán)境(如:IBM i、VT、HPE NonStop、以及IBM Z)中構(gòu)建API嗎?如果您供職于某個(gè)大型組織的IT部門,那么此類需求您一定不陌生。畢竟,針對(duì)某些工作流程和功能,您所在的部門可能需要支持那些老舊的、基于終端的應(yīng)用程序。
顯然,上述情況給您帶來的最大挑戰(zhàn)主要是:時(shí)間。您需要花時(shí)間去確定供應(yīng)商是否提供了新版應(yīng)用程序的API,需要估算測試該版本的時(shí)間,以及將其部署到生產(chǎn)環(huán)境中所需的時(shí)間。同時(shí),如果供應(yīng)商沒有提供對(duì)應(yīng)的API版本,那么您就需要花時(shí)間來確定其源代碼是否可用,或者花時(shí)間研究、并發(fā)現(xiàn)最優(yōu)的集成點(diǎn)??梢院敛豢鋸埖卣f:面對(duì)API的交付日期,時(shí)間永遠(yuǎn)是不夠用的。您也許會(huì)問:該如何爭取時(shí)間呢?
既然我們無法神奇地增加工時(shí),那么就只能想辦法去節(jié)省創(chuàng)建API的時(shí)間。下面我們來具體看看該如何構(gòu)建基于終端應(yīng)用的API:
第1步:定義API的接口
其實(shí),定義API并不復(fù)雜,但是我們需要在開始編寫代碼之前進(jìn)行仔細(xì)的考慮,特別是在命名和各種數(shù)據(jù)類型的模型方面。此事不可操之過急。一旦某個(gè)API被發(fā)布、并且可供調(diào)用,那么我們就無法在保證不破壞那些使用該API應(yīng)用的前提下,輕易地更改其接口了。因此,在大多數(shù)情況下,我們需要將其與終端類應(yīng)用中功能性的輸入和輸出相匹配:
第2步:使用錄屏或機(jī)器人流程自動(dòng)化(RPA)工具實(shí)現(xiàn)API
為了以更快捷、更簡單的方法,發(fā)布基于終端應(yīng)用的功能性API,我們可以模仿應(yīng)用程序用戶的各種行為。此舉的好處在于:應(yīng)用專家可以據(jù)此確證(validate)和驗(yàn)證(verify)您所記錄的步驟,進(jìn)而發(fā)現(xiàn)各種異常,以及潛在的錯(cuò)誤。
由于API的定義主要源于終端應(yīng)用功能的實(shí)際輸入和輸出,因此錄屏工具的使用能夠有效地降低API的實(shí)現(xiàn)難度:
第3步:尋找API的優(yōu)化方法
在發(fā)布了API之前,您應(yīng)該花費(fèi)一些時(shí)間去研究其實(shí)現(xiàn)的有效方法。由于響應(yīng)時(shí)間是至關(guān)重要的,因此,我們通??梢酝ㄟ^兩種選擇來加快API的執(zhí)行速度。第一種選擇是調(diào)查那些繞過終端顯示,而直接調(diào)用應(yīng)用程序的業(yè)務(wù)邏輯。另一種是嘗試著去訪問應(yīng)用程序存儲(chǔ)系統(tǒng)(如:數(shù)據(jù)庫)中的數(shù)據(jù)。如下圖所示:由于該應(yīng)用程序公布了一個(gè)名為“GetCustByNr”的可調(diào)用程序,因此我們可以直接調(diào)用它的業(yè)務(wù)邏輯,以獲悉其運(yùn)行的時(shí)間。
第4步:更新API的實(shí)現(xiàn)
在此,我們假設(shè):通過測試,發(fā)現(xiàn)了直接調(diào)用應(yīng)用程序的業(yè)務(wù)邏輯,要比錄屏工具的實(shí)現(xiàn)快一些。那么,我們在切換到該實(shí)現(xiàn)方式之前,還需要考慮以下方面:
1. 由于最終業(yè)務(wù)邏輯過程的界面可能會(huì)與您在第1步中定義的界面有所不同,因此您可能需要進(jìn)行一些字段的映射和類型的轉(zhuǎn)換。例如,在本例中,CUSTNR被定義為普通的十進(jìn)制(Zoned decimal)。而在第1步定義的API中,“數(shù)字”已經(jīng)被定義為了“字符串”類型(我們這樣定義的原因是需要一個(gè)類型轉(zhuǎn)換的示例)。
2. 輸入格式的確證。該步驟通常是在終端屏幕上被處理的,因此基本的業(yè)務(wù)邏輯過程可能會(huì)在正確性檢查和錯(cuò)誤處理方面有所欠缺。也就是說,您必須確保輸入(和輸出)的數(shù)據(jù)不但有效,并且可以被異常處理的程序所捕獲。
3. 接著,我們要進(jìn)行相應(yīng)的測試。通常情況下,您可以同時(shí)采用上面提到的兩種API執(zhí)行方式。如果我們發(fā)現(xiàn)通過API的業(yè)務(wù)邏輯方式獲得的結(jié)果,與基于用戶終端屏幕的API結(jié)果有所不同,那么就需要進(jìn)一步找到根本的原因。
第5步:監(jiān)視應(yīng)用程序的生命周期
如今,各種終端應(yīng)用往往是通過API的相互調(diào)用,來實(shí)現(xiàn)自我構(gòu)建和運(yùn)行的。因此正如我們在第1步中強(qiáng)調(diào)過的:任何API接口的變更,都會(huì)影響到與之關(guān)聯(lián)的應(yīng)用程序。那么反之亦然。
我們需要通過持續(xù)監(jiān)控目標(biāo)應(yīng)用的整個(gè)生命周期,以避免由于應(yīng)用程序的細(xì)微更改,而導(dǎo)致某些API的可用性和準(zhǔn)確性,進(jìn)而影響到整個(gè)應(yīng)用程序的構(gòu)建。當(dāng)然,您也可以通過一些標(biāo)準(zhǔn)化的解決方案,來協(xié)助管理和協(xié)調(diào)基礎(chǔ)終端應(yīng)用與相關(guān)API的變更聯(lián)動(dòng)關(guān)系,進(jìn)而保證開發(fā)團(tuán)隊(duì)能夠按照自己的步調(diào)進(jìn)行創(chuàng)新,且不會(huì)中斷現(xiàn)有的業(yè)務(wù)。
原文標(biāo)題:API Strategy for Terminal-Based Applications,作者:Jeroen van Dun
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】