[發(fā)明專利]一種將函數(shù)開放為HTTP接口的方法在審
| 申請?zhí)枺?/td> | 202111046547.1 | 申請日: | 2021-09-06 |
| 公開(公告)號: | CN113741874A | 公開(公告)日: | 2021-12-03 |
| 發(fā)明(設(shè)計(jì))人: | 周逸靈;蔣爍淼 | 申請(專利權(quán))人: | 上海駐云信息科技有限公司 |
| 主分類號: | G06F8/30 | 分類號: | G06F8/30 |
| 代理公司: | 北京中索知識產(chǎn)權(quán)代理有限公司 11640 | 代理人: | 高海濤 |
| 地址: | 201207 上海市浦東新區(qū)中*** | 國省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 函數(shù) 開放 http 接口 方法 | ||
本發(fā)明提供了一種將函數(shù)開放為HTTP接口的方法,該方法包括如下步驟:將需要開放為HTTP接口的函數(shù)添加函數(shù)裝飾器,通過所述函數(shù)裝飾器將被裝飾函數(shù)進(jìn)行包裝;客戶端發(fā)起HTTP請求;服務(wù)器端接收到所述HTTP請求后經(jīng)過所述函數(shù)裝飾器調(diào)用被裝飾函數(shù),函數(shù)運(yùn)行結(jié)束之后,所述服務(wù)器端將運(yùn)行結(jié)果再回傳客戶端。本發(fā)明可以大大簡化開發(fā)人員的工作量,使代碼變得更加簡潔也更加安全。
技術(shù)領(lǐng)域
本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,具體而言屬于一種將函數(shù)開放為HTTP接口的方法。
背景技術(shù)
對于一個服務(wù)器端的應(yīng)用程序來說,對外提供服務(wù)必然需要開放相應(yīng)的API接口,而接口的入口函數(shù)都是針對請求和響應(yīng)的處理,開發(fā)人員開發(fā)每一個接口時,都是需要進(jìn)行接口定義、請求參數(shù)處理兩步,之后才是真正的業(yè)務(wù)處理,對于HTTP請求來說,其所要求的服務(wù)比較復(fù)雜多樣化,而常規(guī)情況下,開發(fā)人員是需要在編寫每一個業(yè)務(wù)函數(shù)時,都將這些HTTP請求和響應(yīng)逐一進(jìn)行處理的,這對于開發(fā)人員來說是很大的負(fù)擔(dān),并且很難保證系統(tǒng)內(nèi)的接口對外保證形式上的一致。
有鑒于此,特提出本發(fā)明。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種將函數(shù)開放為HTTP接口的方法,采用Python的裝飾器這項(xiàng)技術(shù)用來解決上述HTTP請求的接口開發(fā)問題,此種方法通過使用Python中的裝飾器語法,Python語言中的裝飾器語法是修改其他函數(shù)的功能的函數(shù),可以讓其他函數(shù)在不需要做任何代碼變動的前提下增加額外的功能,這樣有助于減輕開發(fā)人員的負(fù)擔(dān)也可以讓開發(fā)地代碼更加簡潔、易讀。本發(fā)明在Web服務(wù)框架與業(yè)務(wù)處理之間增加一個中間層,實(shí)現(xiàn)僅需一行注冊代碼,即可將普通Python函數(shù)開放為標(biāo)準(zhǔn)HTTP接口,進(jìn)而可以為服務(wù)器端應(yīng)用程序接口提供一致性,同時也可以簡化接口開發(fā)工作,使得開發(fā)的代碼更加簡潔。
為了實(shí)現(xiàn)本發(fā)明的上述目的,特采用以下技術(shù)方案:
本發(fā)明公開的將函數(shù)開放為HTTP接口的方法包括如下步驟:
將需要開放為HTTP接口的函數(shù)添加上一個函數(shù)裝飾器,通過函數(shù)裝飾器將該函數(shù)進(jìn)行包裝,稱之為被裝飾函數(shù);
客戶端發(fā)起HTTP請求后,請求會直接發(fā)送到服務(wù)器端;
服務(wù)器端接收到所述HTTP請求后經(jīng)過函數(shù)裝飾器調(diào)用被裝飾函數(shù),函數(shù)運(yùn)行結(jié)束之后,產(chǎn)生運(yùn)行結(jié)果,所述服務(wù)器端將運(yùn)行結(jié)果再以HTTP響應(yīng)的形式回傳給客戶端。
本發(fā)明使用到的函數(shù)裝飾器運(yùn)行流程包括:
使用“函數(shù).__name__”函數(shù)提取被裝飾函數(shù)的名稱,使用Python內(nèi)置的“inspect”庫,通過“inspect.getfullargspec”函數(shù)提取被裝飾函數(shù)的參數(shù);
根據(jù)提取到的被裝飾函數(shù)的名稱搜尋被裝飾函數(shù)的同名函數(shù);
如果沒有找到所述被裝飾函數(shù)的同名函數(shù)返回結(jié)果:無此函數(shù);如果找到了如果找到了所述被裝飾函數(shù),根據(jù)提取出的被裝飾函數(shù)的參數(shù)去HTTP請求中篩選同名參數(shù),多余參數(shù)直接舍棄;
使用HTTP請求中篩選出的參數(shù)調(diào)用找到的被裝飾函數(shù),代入所述被裝飾函數(shù)中進(jìn)行執(zhí)行將執(zhí)行結(jié)果回傳。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:
(1)本發(fā)明通過使用Python的裝飾器來裝飾函數(shù),以達(dá)成將函數(shù)開放為HTTP接口的目的,這樣的方式可以使得不需要專門針對每一個函數(shù)都進(jìn)行修改成HTTP接口,只需要編寫一個裝飾器通過裝飾器來調(diào)用函數(shù)即可達(dá)成目的,可以極大地簡化工作人員開發(fā)難度,使得程序代碼更加簡潔。
(2)函數(shù)源代碼不需要經(jīng)常公開、修改,增加了安全性。
附圖說明
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于上海駐云信息科技有限公司,未經(jīng)上海駐云信息科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111046547.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 基于HTTP的通信方法及系統(tǒng)、HTTP服務(wù)器、HTTP客戶端
- 用于處理HTTP消息的方法以及實(shí)現(xiàn)其的電子裝置
- HTTP報(bào)文處理方法及系統(tǒng)、HTTP客戶端及服務(wù)器
- 一種信息傳輸方法、裝置及無線通信系統(tǒng)
- 發(fā)起HTTP請求的方法及裝置
- 一種基于HTTP的應(yīng)用響應(yīng)推送方法及代理服務(wù)器
- 一種針對HTTP Flood攻擊的防護(hù)方法及系統(tǒng)
- 一種交互方法、客戶端設(shè)備及服務(wù)端設(shè)備
- H5跨引擎客戶端數(shù)據(jù)自動化更新的方法、存儲介質(zhì)
- 一種基于代理的HTTP報(bào)文采集方法、終端設(shè)備及存儲介質(zhì)





