一種接口定義方法和數(shù)據(jù)傳輸方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種接口定義方法和數(shù)據(jù)傳輸方法及裝 置。
【背景技術(shù)】
[0002] 隨著計(jì)算機(jī)技術(shù)的發(fā)展,由后端設(shè)備向前端設(shè)備提供數(shù)據(jù)、由前端設(shè)備根據(jù)該數(shù) 據(jù)為用戶提供服務(wù)的模式已經(jīng)非常普遍。其中,后端設(shè)備可以是服務(wù)端,前端設(shè)備可以是客 戶端。
[0003] 例如,客戶端可先向服務(wù)端發(fā)送諸如超文本傳輸協(xié)議(HyperTextTransfer Protocol,HTTP)請(qǐng)求等請(qǐng)求消息,服務(wù)端接收到該請(qǐng)求消息后,則根據(jù)該請(qǐng)求消息向客戶 端返回相應(yīng)的數(shù)據(jù),客戶端則解析接收到的數(shù)據(jù)并展現(xiàn)給用戶。
[0004] 但是,如果客戶端能夠解析的數(shù)據(jù)的格式與服務(wù)端返回的數(shù)據(jù)的格式不一致,就 會(huì)導(dǎo)致客戶端不能正確的解析服務(wù)端返回的數(shù)據(jù),因此,這就需要預(yù)先定義客戶端和服務(wù) 端之間的接口,使服務(wù)端返回的數(shù)據(jù)的格式能夠被客戶端正確的解析。
[0005] 具體的,在現(xiàn)有技術(shù)中,一般使用api-blueprint工具來定義接口。由于 api-blueprint工具定義接口所使用的是markdown語言,因此,對(duì)于用戶來說,使用 api-blueprint工具定義的接口具有較好的可讀性。
[0006] 然而,雖然markdown語言對(duì)用戶具有較強(qiáng)的可讀性,但其對(duì)具體字段的描述能力 不足,如,markdown語言不能描述一個(gè)字段中的數(shù)據(jù)是整型還是浮點(diǎn)型,也不能描述數(shù)據(jù)的 取值范圍等,這就導(dǎo)致使用markdown語言定義接口的準(zhǔn)確性較低。而且,markdown語言只 能描述基于HTTP的接口,不能對(duì)基于其他協(xié)議的接口進(jìn)行描述,這也導(dǎo)致使用markdown語 言定義接口的可擴(kuò)展性較低。
【發(fā)明內(nèi)容】
[0007] 本申請(qǐng)實(shí)施例提供一種接口定義方法和數(shù)據(jù)傳輸方法及裝置,用以解決現(xiàn)有技術(shù) 中定義接口的準(zhǔn)確性和可擴(kuò)展性較低的問題。
[0008] 本申請(qǐng)實(shí)施例提供的一種接口定義方法,包括:
[0009] 接口工具采用預(yù)設(shè)的接口描述語言定義接口;
[0010] 根據(jù)定義的所述接口生成接口文件,其中,所述接口文件中包含原始格式中各字 段與目標(biāo)格式中各字段的對(duì)應(yīng)關(guān)系;
[0011] 將所述接口文件提供給服務(wù)端,使所述服務(wù)端根據(jù)所述接口文件將原始格式的數(shù) 據(jù)轉(zhuǎn)換為目標(biāo)格式的數(shù)據(jù)。
[0012] 本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)傳輸方法,包括:
[0013] 服務(wù)端接收請(qǐng)求消息;
[0014] 根據(jù)所述請(qǐng)求消息確定要返回的原始格式的數(shù)據(jù);
[0015] 根據(jù)接口工具提供的接口文件中包含的原始格式中各字段與目標(biāo)格式中各字段 的對(duì)應(yīng)關(guān)系,將所述原始格式的數(shù)據(jù)轉(zhuǎn)換為目標(biāo)格式的數(shù)據(jù);
[0016] 返回轉(zhuǎn)換的目標(biāo)格式的數(shù)據(jù)。
[0017] 本申請(qǐng)實(shí)施例提供的一種接口定義裝置,包括:
[0018] 定義模塊,用于采用預(yù)設(shè)的接口描述語言定義接口;
[0019] 接口文件生成模塊,用于根據(jù)定義的所述接口生成接口文件,其中,所述接口文件 中包含原始格式中各字段與目標(biāo)格式中各字段的對(duì)應(yīng)關(guān)系;
[0020] 提供模塊,用于將所述接口文件提供給服務(wù)端,使所述服務(wù)端根據(jù)所述接口文件 將原始格式的數(shù)據(jù)轉(zhuǎn)換為目標(biāo)格式的數(shù)據(jù)。
[0021] 本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)傳輸裝置,包括:
[0022] 接收模塊,用于接收請(qǐng)求消息;
[0023] 確定模塊,用于根據(jù)所述請(qǐng)求消息確定要返回的原始格式的數(shù)據(jù);
[0024] 轉(zhuǎn)換模塊,用于根據(jù)接口工具提供的接口文件中包含的原始格式中各字段與目標(biāo) 格式中各字段的對(duì)應(yīng)關(guān)系,將所述原始格式的數(shù)據(jù)轉(zhuǎn)換為目標(biāo)格式的數(shù)據(jù);
[0025] 發(fā)送模塊,用于返回轉(zhuǎn)換的目標(biāo)格式的數(shù)據(jù)。
[0026] 本申請(qǐng)實(shí)施例提供一種接口定義方法和數(shù)據(jù)傳輸方法及裝置,該方法接口工具采 用預(yù)設(shè)的接口描述語言定義接口,根據(jù)定義的接口生成接口文件,將接口文件提供給服務(wù) 端,使服務(wù)端根據(jù)接口文件中包含的原始格式中各字段與目標(biāo)格式中各字段的對(duì)應(yīng)關(guān)系, 將原始格式的數(shù)據(jù)轉(zhuǎn)換為目標(biāo)格式的數(shù)據(jù)。由于本申請(qǐng)采用預(yù)設(shè)的接口描述語言定義接 口,而接口描述語言對(duì)字段的描述能力較強(qiáng),可準(zhǔn)確的描述目標(biāo)格式中的各字段,因此可有 效提高定義接口的準(zhǔn)確性。另外,由于接口描述語言除了可描述基于HTTP的接口以外,還 可描述基于其他協(xié)議的接口,因此,也可有效提高定義接口的可擴(kuò)展性。
【附圖說明】
[0027] 此處所說明的附圖用來提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申 請(qǐng)的示意性實(shí)施例及其說明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:
[0028] 圖1為本申請(qǐng)實(shí)施例提供的定義接口的過程;
[0029] 圖2為本申請(qǐng)實(shí)施例提供的數(shù)據(jù)傳輸?shù)倪^程;
[0030] 圖3為本申請(qǐng)實(shí)施例提供的由接口工具、服務(wù)端和客戶端組成的系統(tǒng)結(jié)構(gòu)示意 圖;
[0031] 圖4為本申請(qǐng)實(shí)施例提供的接口定義裝置結(jié)構(gòu)示意圖;
[0032] 圖5為本申請(qǐng)實(shí)施例提供的數(shù)據(jù)傳輸裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0033] 為使本申請(qǐng)的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請(qǐng)具體實(shí)施例及 相應(yīng)的附圖對(duì)本申請(qǐng)技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請(qǐng)一 部分實(shí)施例,而不是全部的實(shí)施例。基于本申請(qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做 出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
[0034]圖1為本申請(qǐng)實(shí)施例提供的定義接口的過程,具體包括以下步驟:
[0035] S101 :接口工具采用預(yù)設(shè)的接口描述語言定義接口。
[0036] 在本申請(qǐng)實(shí)施例中,接口工具摒棄了傳統(tǒng)的通過markdown語言定義接口的方式, 而采用預(yù)設(shè)的接口描述語言定義接口。其中,本申請(qǐng)所述的接口描述語言是指對(duì)字段的描 述能力較強(qiáng),并且除了可以描述基于HTTP協(xié)議的接口以外,還可以描述基于其他協(xié)議接口 的語言。如,預(yù)設(shè)的接口描述語言可以是JSON-Schema語言。下面以預(yù)設(shè)的接口描述語言 為JSON-Schema語言為例進(jìn)行說明。
[0037] 由于JSON-Schema語言對(duì)字段具有較強(qiáng)的描述能力,因此,采用JSON-Schema定義 接口可有效提高定義接口的準(zhǔn)確性。
[0038] 具體的,JSON-Schema語言可描述一個(gè)字段中的數(shù)據(jù)是整型還是浮點(diǎn)型、數(shù)據(jù)的取 值范圍等諸多的數(shù)據(jù)屬性,因此,相比于markdown語言,采用JSON-Schema語言可更準(zhǔn)確的 定義接口。
[0039] 另外,由于JSON-Schema語言除了可描述基于HTTP的接口以外,還可描述其他協(xié) 議的接口,因此,采用JSON-Schema語言定義接口也可提高定義接口的可擴(kuò)展性。
[0040] S102 :根據(jù)定義的接口生成接口文件,其中,接口文件中包含原始格式中各字段與 目標(biāo)格式中各字段的對(duì)應(yīng)關(guān)系。
[0041] 在本申請(qǐng)實(shí)施例中,接口工具定義接口后,可根據(jù)定義的接口生成接口文件。其 中,由于接口工具是采用預(yù)設(shè)的接口描述語言定義接口的,因此,生成的接口文件也是基于 該預(yù)設(shè)的接口描述語言的。
[0042] 例如,當(dāng)接口工具采用JSON-Schema語言定義接口時(shí),生成的接口文件也是基于 JSON-Schema語言的。也即,接口文件中通過JSON-Schema語言描述了目標(biāo)格式中各字段的 格式,以及目標(biāo)格式中