成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用開源 Python API 封裝器與你的集群對話

開發 開源
本文討論了什么是 API 封裝器,為什么它很有用,以及封裝器的一些例子。

結合開放的 API 和 Python 編程語言的力量。

圍繞 API 創建封裝器的開源項目正變得越來越流行。這些項目使開發人員更容易與 API 交互并在他們的應用中使用它們。openshift-python-wrapper 項目是 openshift-restclient-python 的封裝器。最初是一個幫助我們的團隊使用 OpenShift API 的內部包,后來變成了一個開源項目(Apache 許可證 2.0)。

本文討論了什么是 API 封裝器,為什么它很有用,以及封裝器的一些例子。

為什么要使用 API 封裝器?

API 封裝器是位于應用和 API 之間的一層代碼。它通過將一些涉及發出請求和解析響應的復雜性抽象出來,以簡化 API 訪問過程。封裝器還可以提供 API 本身提供的功能之外的附加功能,例如緩存或錯誤處理。

使用 API 封裝器使代碼更加模塊化并且更易于維護。無需為每個 API 編寫自定義代碼,你可以使用封裝器來提供與 API 交互的一致接口。它可以節省時間,避免代碼重復,并減少出錯的機會。

使用 API 封裝器的另一個好處是它可以保護你的代碼免受 API 變化的影響。如果 API 更改了它的接口,你可以更新封裝器代碼而無需修改你的應用程序代碼。隨著時間的推移,這可以減少維護應用程序所需的工作。

安裝

該應用位于 PyPi 上,因此使用 pip 命令 安裝 openshift-python-wrapper

$ python3 -m pip install openshift-python-wrapper

Python 封裝器

OpenShift REST API 提供對 OpenShift 平臺的許多功能的編程訪問。封裝器提供了一個簡單直觀的界面,用于使用 openshift-restclient-python 庫與 API 進行交互。它標準化了如何使用集群資源,并提供了統一的資源 CRUD(創建、讀取、更新和刪除)流程。它還提供額外的功能,例如需要由用戶實現的特定于資源的功能。隨著時間的推移,封裝器使代碼更易于閱讀和維護。

簡化用法的一個示例是與容器交互。在容器內運行命令需要使用 Kubernetes 流、處理錯誤等。封裝器處理這一切并提供 簡單直觀的功能

>>> from ocp_resources.pod import Pod
>>> from ocp_utilities.infra import get_client
>>> client = get_client()
ocp_utilities.infra INFO Trying to get
client via new_client_from_config
>>> pod = Pod(client=client, name="nginx-deployment-7fb96c846b-b48mv", namespace="default")
>>> pod.execute("ls")
ocp_resources Pod INFO Execute ls on
nginx-deployment-7fb96c846b-b48mv (ip-10-0-155-108.ec2.internal)
'bin\nboot\ndev\netc\nhome\nlib\nlib64\nmedia\nmnt\nopt\nproc\nroot\nrun\nsbin\nsrv\nsys\ntmp\nusr\nvar\n'

開發人員或測試人員可以使用這個封裝器,我們的團隊在編寫代碼的同時牢記測試。使用 Python 的上下文管理器可以提供開箱即用的資源創建和刪除,并且可以使用繼承來擴展特定場景的功能。Pytest fixtures 可以使用代碼進行設置和拆卸,不留任何遺留物。甚至可以保存資源用于調試。可以輕松收集資源清單和日志。

這是上下文管理器的示例:

@pytest.fixture(scope="module")
def namespace():
    admin_client = get_client()
    with Namespace(client=admin_client, name="test-ns",) as ns:
        ns.wait_for_status(status=Namespace.Status.ACTIVE, timeout=240)
        yield ns
def test_ns(namespace):
    print(namespace.name)

生成器遍歷資源,如下所示:

>>> from ocp_resources.node import Node
>>> from ocp_utilities.infra import get_client
>>> admin_client = get_client()
# This returns a generator
>>> for node in Node.get(dyn_client=admin_client): 
        print(node.name)
ip-10-0-128-213.ec2.internal

開源社區的開源代碼

套用一句流行的說法,“如果你熱愛你的代碼,就應該讓它自由。” openshift-python-wrapper 項目最初是作為 OpenShift 虛擬化 的實用模塊。隨著越來越多的項目從代碼中受益,我們決定將這些程序提取到一個單獨的倉庫中并將其開源。套用另一句俗語,“如果代碼不回到你這里,那就意味著它從未屬于你。” 一旦這種情況發生,它就真正成為了開源。

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2023-04-21 15:54:46

AI開源

2023-08-01 11:14:07

開源Api軟件

2023-06-26 18:13:56

開源API

2009-06-04 13:16:20

主考官面試菜鳥

2019-01-30 18:00:21

開源Python庫

2017-05-31 13:04:03

戴爾創行中國對話

2024-04-23 08:16:21

2020-11-15 18:00:49

開源可視化工具Python

2021-06-11 13:02:05

開源工具LinuxLinux PC

2018-10-29 11:33:29

2011-12-21 10:42:22

云計算服務器市場

2023-03-02 13:32:17

應用安全網絡安全Web應用

2017-10-30 16:12:30

DockerServerless樹莓派

2021-07-27 08:25:41

KubernetesBotKube監控

2023-10-04 09:28:40

CBconvert開源工具

2022-07-26 07:05:50

PythonAPI語法

2022-06-07 08:59:58

hookuseRequestReact 項目

2022-06-21 08:50:13

開源MegPeak處理器

2019-10-08 11:48:20

PythonGitHub程序員
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品成人一区二区三区夜夜夜 | 亚洲精品乱码久久久久久蜜桃 | 色毛片 | 久久国产精品视频 | 久久久精品综合 | 国产精品免费观看 | 国产精品美女在线观看 | 国产中文在线 | 五月天激情电影 | 一级片免费在线观看 | 9porny九色视频自拍 | 久久一区二区三区免费 | 欧美日韩国产综合在线 | 韩日一区二区 | 精品久久国产 | 成人做爰999 | 麻豆精品一区二区三区在线观看 | 欧美1级| 超黄毛片| 成人欧美一区二区三区在线观看 | 国产成人影院 | 日操夜操 | 亚洲午夜av久久乱码 | 国产高清精品一区二区三区 | 日本人做爰大片免费观看一老师 | 精品欧美激情在线观看 | 亚洲啊v在线 | 国产在线不卡 | 本道综合精品 | 亚洲精品视频免费 | 九九热热九九 | 国内av在线 | 一级欧美一级日韩片免费观看 | 日韩高清中文字幕 | 免费成人高清在线视频 | 欧美亚洲第一区 | 999精品在线 | 国产精品不卡视频 | 成人在线观看免费 | 一级毛片大全免费播放 | 99reav|