Redian新闻
>
使用开源 Python API 封装器与你的集群对话 | Linux 中国

使用开源 Python API 封装器与你的集群对话 | Linux 中国

科技
 
导读:结合开放的 API 和 Python 编程语言的力量。                               
本文字数:2889,阅读时长大约:3分钟

结合开放的 API 和 Python 编程语言的力量。

围绕 API 创建封装器的开源项目正变得越来越流行。这些项目使开发人员更容易与 API 交互并在他们的应用中使用它们。openshift-python-wrapper 项目是 openshift-restclient-python🔗 github.com 的封装器。最初是一个帮助我们的团队使用 OpenShift API 的内部包,后来变成了一个开源项目🔗 github.com(Apache 许可证 2.0)。

本文讨论了什么是 API 封装器,为什么它很有用,以及封装器的一些例子。

为什么要使用 API 封装器?

API 封装器是位于应用和 API 之间的一层代码。它通过将一些涉及发出请求和解析响应的复杂性抽象出来,以简化 API 访问过程。封装器还可以提供 API 本身提供的功能之外的附加功能,例如缓存或错误处理。

使用 API 封装器使代码更加模块化并且更易于维护。无需为每个 API 编写自定义代码,你可以使用封装器来提供与 API 交互的一致接口。它可以节省时间,避免代码重复,并减少出错的机会。

使用 API 封装器的另一个好处是它可以保护你的代码免受 API 变化的影响。如果 API 更改了它的接口,你可以更新封装器代码而无需修改你的应用程序代码。随着时间的推移,这可以减少维护应用程序所需的工作。

安装

该应用位于 PyPi🔗 pypi.org 上,因此使用 pip 命令🔗 opensource.com 安装 openshift-python-wrapper

  1. $ python3 -m pip install openshift-python-wrapper

Python 封装器

OpenShift REST API🔗 access.redhat.com 提供对 OpenShift 平台的许多功能的编程访问。封装器提供了一个简单直观的界面,用于使用 openshift-restclient-python 库与 API 进行交互。它标准化了如何使用集群资源,并提供了统一的资源 CRUD(创建、读取、更新和删除)流程。它还提供额外的功能,例如需要由用户实现的特定于资源的功能。随着时间的推移,封装器使代码更易于阅读和维护。

简化用法的一个示例是与容器交互。在容器内运行命令需要使用 Kubernetes 流、处理错误等。封装器处理这一切并提供 简单直观的功能🔗 github.com

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

开发人员或测试人员可以使用这个封装器,我们的团队在编写代码的同时牢记测试。使用 Python 的上下文管理器可以提供开箱即用的资源创建和删除,并且可以使用继承来扩展特定场景的功能。Pytest fixtures 可以使用代码进行设置和拆卸,不留任何遗留物。甚至可以保存资源用于调试。可以轻松收集资源清单和日志。

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

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

生成器遍历资源,如下所示:

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

开源社区的开源代码

套用一句流行的说法,“如果你热爱你的代码,就应该让它自由。” openshift-python-wrapper 项目最初是作为 OpenShift 虚拟化🔗 www.redhat.com 的实用模块。随着越来越多的项目从代码中受益,我们决定将这些程序提取到一个单独的仓库中并将其开源。套用另一句俗语,“如果代码不回到你这里,那就意味着它从未属于你。” 一旦这种情况发生,它就真正成为了开源。

更多的贡献者和维护者意味着代码属于社区。欢迎大家贡献。

(题图:MJ/5ca32a4a-2194-4b36-ade9-053433e79201)


via: https://opensource.com/article/23/4/cluster-open-source-python-api-wrapper

作者:Ruth Netser 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

LCTT 译者 :geekpi
💎💎💎💎
翻译: 1926.5 篇
|
贡献: 3480 天
2013-10-25
2023-05-06
https://linux.cn/lctt/geekpi
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
使用开源人工智能 Upscayl 放大你的老照片 | Linux 中国使用 Kubespray 安装 Kubernetes 集群 | Linux 中国Python 中的变量:概念与示例 | Linux 中国如何在 Ubuntu 和其他 Linux 下安装 IDLE Python IDE | Linux 中国广东篇:加快培育发展先进材料产业集群等十大战略性支柱产业集群、十大战略性新兴产业集群使用 Linux 让旧电脑焕发新颜 | Linux 中国TUXEDO Stellaris 16(Gen5)是目前所能找到的终极 Linux 笔记本电脑 | Linux 中国使用这些 Python 工具可视化地探索数据 | Linux 中国ChatGPT开源平替:OpenAssistant OASST1微调版Pythia-12BrisiOS:一个易于使用的基于 Fedora 的 Linux 发行版 | Linux 中国厚着脸皮搞来的Python资料,请低调使用(待会删)Agustín Hernández:中美洲建筑背景下的未来主义巨构轻松啃下砖头!5分钟精读带你入门Python神作小鳄鱼!(第一周)使用开源的思维导图工具 | Linux 中国为什么黑客更喜欢使用 Kali Linux? | Linux 中国《Python机器学习》畅销书作者又出新书了,全方位扩展你的机器学习知识使用 ChatGPT AI 从英文文本生成 Linux 命令 | Linux 中国在 Linux 中使用 cd 命令 | Linux 中国白嫖付费搞来的Python资料,请低调使用(待会删)使用这个开源的会计应用来管理你的小企业 | Linux 中国一篇关于使用Python实现财务报表自动化的实用指南Reminders:一个漂亮的开源 Linux 应用,可帮助你完成工作 | Linux 中国他竟然是李雪健的亲儿子,最低调的星二代使用开源思维导图 Draw.io | Linux 中国如何在 Linux 中使用旧相机作为网络摄像头 | Linux 中国美国入境档案--李恒德,1946年西雅图麻省理工Python增强编译器Codon 让Python像C\\C++一样高效为什么Python如此受欢迎?如何在 Rocky Linux 9 / AlmaLinux 9 上安装 KVM | Linux 中国结合使用 Python 和 Rust | Linux 中国曝潘长江带全家移美,妻子带外孙玩乐享受惬意,网友:滚别回来了看《狂飙访谈》如何在 Linux 系统中使用 Ventoy 创建多重引导的 U 盘 | Linux 中国世界上只有两个 Linux 发行版:Arch Linux 与其它 | Linux 中国忆秦娥 (变格:平韵格):草木滋延
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。