LinuxGod

LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

围绕API创建封装器的开源项目正变得越来越流行

2023年5月13日 297点热度

作者:RuthNetser译者:LCTTgeekpi

|2023-05-0723:26

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

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

本文讨论了哪些是API封装器linux应用软件开发,为何它很有用,以及封装器的一些事例。

为何要使用API封装器?

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

使用API封装器使代码愈发模块化而且更便于维护。无需为每位API编撰自定义代码,你可以使用封装器来提供与API交互的一致插口。它可以节约时间,防止代码重复,并降低出错的机会。

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

安装

该应用坐落PyPi上,因而使用pip命令安装openshift-python-wrapper:

$ python3 -m pip install openshift-python-wrapper

Python封装器

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

简化用法的一个示例是与容器交互。在容器内运行命令须要使用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)
'binnbootndevnetcnhomenlibnlib64nmedianmntnoptnprocnrootnrunnsbinnsrvnsysntmpnusrnvarn'

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

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

@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应用软件开发,那就意味着它未曾属于你。”一旦这些情况发生,它就真正成为了开源。

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

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

via:

作者:RuthNetser选题:lkxed译者:geekpi校对:wxy

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

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: api openshift
最后更新:2023年5月13日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
如何在Linux上安装视频播放器installvlc 晚上暴露于蓝光,睡眠质量大打折扣 如何安装便携式WiFi驱动程序?360wifi驱动的教程 CentOS云服务器搭建网站和CentOS搭建DNS解析服务 如何在linux上创建一个用户,减少不必要的沟通成本 如何在Linux系统中查看CPU信息使用lscpu命令行 linux服务器搭建ftp的6下安装vsftpd步骤及步骤 贵州工业职业技术学院求职意向期望工作地--诚聘英才 实验1Linux安装实验掌握虚拟机的使用 Linux系统tar命令的使用方法及使用命令教程 linux 开源nas系统 杰和科技NAS服务器媒体见面会在京召开 Android与Linux开发大不同 Linux系统软件安装包:自己动手,安装不用愁 车市新战局:汽车操作系统会复制智能手机的历史吗? Linux文件系统种类 如何卸载用源码包安装的软件?在线视频教程推荐 「职位」ASP.、PHP、Linux服务器集群开发 Torvalds:Linux内核开发的创新前景充满了热情 Linux文件系统的结构从终端窗口探索Linux目录树结构 卸载软件命令Linux.You
嵌入式Linux操作系统学习规划+LINUX路线,主攻江苏电信天翼校园客户端故障指引及解决办法(101)英特尔GMAGMA950显卡驱动程序/WIN8/8.1电信校园网宽带用USB数据线共享给电脑无线上网国防科大开源操作系统:它只是一个吉祥的象征10个常用Linux文本查看命令及其详细说明和使用示例Linux嵌入式系统内核裁剪与定制方法的介绍情况淘宝教育热卖C语言编程开发C++程序设计零基础入门课程从CPU、内存、硬盘、显卡等这些方面安装Linux系统的最低配置Linux通过chkconfig设置开机启动服务创建的几种常见方式(技术分析)Linux多线程的使用与操作系统的区别通常rar命令由一个主命令加若干选项(可选)构成RedHatLinux中自动运行程序中的应用linux 读写文件 关于Linux内核的神秘面纱,你知道几个?使用wget实用程序的有用命令行工具的使用怎么设置linux开机项自启动?方式是怎样的?嵌入式Linux应用层与驱动层要想学习关于Linux内核的交叉编译步骤和方法:步骤、方法STM32嵌入式linux开发流程及应用程序分析-STMlinux下有哪些文件在介绍lsof命令实用用法介绍?
娃白天睡觉不太踏实,搞一个局域网实时监控,怎么办? 嵌入式Linux系统的特点及特点分析-苏州安嘉 Linux视频教程以上就是usb的目录及操作环境.3 Linux下的crontab会自动帮我们每分钟重新一次/crontab 变量置为昨天的日期,并将其转换为Unix时间戳 的Linux操作系统怎样执行? 系统更新,Linux与Windows同步 Linux存储管理操作实践学号实验内容(9页珍藏版) 修改软件源文件、UI界面设置换源操作|Ubuntu 轻松掌握:如何查询Linux内核版本? 克隆虚拟机,vmware地址和操作系统中的mac地址 第六章.管理本地用户和组学习目标:6.1描述用户访问权限 RedHatLinux62初级读者入手经验分享 (Linux基础知识)Linux软件包管理的基本操作 打开U盘什么文件都看不到小编总结了 linux虚拟机的安装步骤是什么?虚拟机和服务器的区别 怎么设置linux开机项自启动?方式是怎样的? 中文乱码问题详解:内容索引字符集与编码相关知识 Gartner将其列2022年第二大软件供应链攻击 关于Linux学习使用计算机必然会接触操作系统的分析实例分享
标签聚合
应用 内核 命令 软件 linux系统 虚拟机 文件 操作 linux服务器 文件目录
书籍
课程
技术群
技术干货大合集↓
  • 2023年9月 / 83篇
  • 2023年8月 / 93篇
  • 2023年7月 / 94篇
  • 2023年6月 / 90篇
  • 2023年5月 / 93篇
  • 2023年4月 / 90篇
  • 2023年3月 / 129篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.