当前位置:主页 > 虚拟服务器 > 应用安全 >

美国服务器_云服务器教程_稳定性好

简介

所有现代技术、平台和框架都有一个用于编程交互的专用工具,对吗?特别是如果你想想现在被广泛使用的所有东西,例如:angular、cloud foundry、npm、git和we可以永远继续下去。见鬼,即使apigee也有CLI/"SDK"。

那么模式是什么呢?好吧,它们中的大多数似乎都有一种公共API(例如节点模块),也可以通过普通的旧控制台使用。在内心深处你知道一切都可以追溯到那。但这是懒惰的一种特殊味道:我们希望尽可能地提高效率,避免犯错,同时投入最少的精力和时间。就我个人而言,让我真正感到疲倦的是那些重复的事情。我不喜欢在UI中手工操作,因为我可以编写一些代码来为自己完成这些工作。

因此,首先,您可能会自动编译项目,大数据行业前景,然后您可能会自动测试,甚至部署。如果您足够"懒惰",甚至可能导致在签入代码时自动运行此进程。提示:我这里说的是CI/CD。这有许多内在的好处,也有很多关于它的博客,所以我不会再坚持下去了。

更好的是,云品,如果你把它全部开源,其他人可能会与另一个库或工具进行一些很酷的集成(例如,一个咕噜任务)。

SAP

嗯,在SAP的世界里,CI/CD是相当新的,大数据使用,未使用或在大多数领域被误解。当然,也有例外,物联网培训,因为当谈到几乎任何特性(底层技术、体系结构、原则或缺乏这些特性等)时,SAP技术都是完全异构的。开放源代码正在略微提高,但在我看来,社区还没有真正实现。

考虑到这一点,sapapi管理器(Cloud)没有自己的CLI或API模块(而不是restapi)也就不足为奇了。很奇怪吧?API管理器是关于对您的系统和数据进行编程访问的,但在这方面,它本身没有一个好的接口。

我希望SAP会过来,制造一些工具来帮助我们。但是我真的不喜欢等待,特别是当它可能需要一段时间的时候。

我的看法

好吧,因为我"懒惰"并且我现在必须与API管理器一起工作,我决定我不能忍受再对我正在工作的代理进行一次手动重新部署。请记住,目前,API Manager云UI甚至不允许您执行运行时本身支持的所有操作(例如,定义"错误规则")。

那么我开始构建什么?在许多其他npm模块的帮助下,我为sapapi管理器构建了一个开源CLI和API模块的第一个版本。你可以在它的GitHub存储库中找到源代码,在wiki上找到更多的信息。

我称它为sapim(sapapi管理的缩写)。

作为第一个版本,现在只支持一小部分命令。如果它走上正轨,肯定会有更多的事情发生。我不会详细讨论模块的细节。如果您对此感兴趣,请查看存储库和/或wiki。在博客的其余部分,我将讨论一个小示例。

演示

让我们构建一个简单的API代理来验证JSON对象(您可以在我的一个GitHub存储库中找到最终结果)。

好的,我们首先使用API管理器UI创建一个空API代理,继续添加JavaScript Callout策略,然后将其导出为ZIP(这样我们就可以在本地处理)。

为了更易重用,我们用占位符(代理名称、描述和基本URL)替换API代理XML文件中的一些硬编码"常量"。

现在在Callout中,我们希望使用JavaScript代码进行验证。通过快速的Google搜索,我们可以找到"正确的"npm模块来为我们进行验证。然后我们必须编写一些非常简单的代码来调用npm模块:

为了确保我们没有犯任何愚蠢的错误,让我们用Mocha构建一些单元测试:

当然,在这一点上,如果我们尝试将代码粘贴到API管理器中,它将不起作用,因为:

我们在那里使用了一些ES6特性。我们还使用"require"函数。

在API管理器中,我们实际上需要将所有必需的库作为文件资源上传。所以人们首先会想:"好吧,我将手动下载validate包并将其添加到那里!"。不,那是个坏主意。首先,包很可能依赖于其他包。第二,当我们想使事情自动化时,这将是一个额外的手动步骤!

为了避免这种情况,我们可以使用babel和browserify将代码传输到"oldjs"并打包依赖项。为了将所有内容链接在一起,我们将使用Grunt(和一些插件)从源文件构建API代理文件。我们的Grunt构建将执行以下步骤:

运行一些小型Mocha单元测试。清除生成输出文件夹。将静态API代理文件(XML)复制到输出文件夹。浏览源代码(捆绑所有依赖项)。将代码转换为不再使用ES6功能。将代理打包到存档中。将存档文件部署到API管理器。

最后两个步骤是使用包装新sapim库的自定义grunt任务完成的:

我们可以简单地配置和使用这些任务,就像任何其他grunt任务一样:

我将不深入讨论grunt细节,如果需要,可以在GitHub存储库中查看它感兴趣的人最后一步是将Grunt任务添加到包.json:

在运行npm run deploy之后,每日返利,我们已经可以看到我们的API代理已经被部署:

并且,为了确保它能够工作,我们也可以在Postman中测试一下:

最后一句话

总结一下提出的方法的附加值:

猜你喜欢

微信公众号