昨天,我简要介绍了霸王项目家族。 今天该试驾了。 API管理子项目两天前发布了1.0.0.Alpha1,并根据18个月的路线图介绍了第一组功能。

APIMan到底是什么?

它是一个API管理系统,可以嵌入现有框架或应用程序中,甚至可以作为单独的系统运行。 到目前为止,一切都很好。 但是什么是API管理?为什么要关心它? 事实是,当今的应用程序规模越来越大,复杂性越来越高,并且分布越来越广泛。 将更多的消费者添加到移动设备,电视或即将推出的整个IoT设备等组合中,并考虑如何在整个应用程序中一致地实施访问控制或使用。 一个噩梦的候选人。 但是不要太担心。 这就是API管理的用武之地。APIMan为您的API提供了基于策略的灵活的运行时治理。 它允许API提供者通过多种计划提供相同的API,从而为不同的API使用者提供不同级别的服务。 听起来还复杂吗? 试一试吧。

图书馆REST服务

想象一下,公共图书馆有一个不错的RESTful服务,其中列出了书籍。 它在某个地方运行,通常不受访问限制。 现在,有人想到了构建一个出色的移动应用程序的想法,该应用程序可以确定图书是否在图书馆中。 下一步应该是添加一个选项来预订一本书几个小时,这是旧系统目前无法做到的。 我们将不使用大量的库应用程序版本,而是使用API​​Man为移动应用程序提供一致的API,并让它现在管理身份验证。 我在这里使用的API是一个简单的resteasy示例。 您可以使用必须使用的任何Web服务终结点。

WildFly 8.1入门

该项目可以在各种运行时平台上构建和部署,但是如果您希望尽快看到它在运行, 则只需要派生并克隆APIMan GitHub存储库,并简单地使用Maven 3.x进行构建即可。 如果使用“ run-all-wildfly8”配置文件,则可以立即对其进行驱动测试,因为它不仅可以构建项目,还可以下载并配置最新的WildFly 8.1,并最终为您启动它。 构建并启动需要花费一些时间,因此最好带点耐心。

因此,要做的所有探索就是在http:// localhost:8080 / apiman-dt-ui /上启动管理控制台,并使用以下用户之一登录(“!”是密码,btw):

  • admin / admin123!
  • bwayne / bwayne123!
  • ckent / ckent123!
  • dprince / dprince123!

试驾快速入门

该文档目前有点薄弱,所以我将向您简要介绍一下控制台。

打开控制台并以admin用户身份登录。 现在,您可以“创建一个新的组织”,现在将其称为“公共图书馆”。 新创建的组织向您显示一些选项卡(“应用程序”,“服务”,“计划”,“成员”)。 切换到服务选项卡,然后单击“新服务”按钮。 输入“ BookListing”作为名称,将1.0保留为“版本”,您可能会对其进行描述,以供参考。


单击“创建服务”按钮后,您将重定向到概述页面。 切换到“实施”并填写最终的API端点。 在我的情况下,这将是:http:// localhost:9080 / jaxb-json / resteasy / library / books / badger(注意:它部署在另一个WildFly实例上)完成后单击“保存”。


如果切换回概述页面,您会看到该服务处于“已创建”状态,并且“发布”按钮仍显示为灰色。 为了达到这个目标,我们需要向APIMan添加更多信息。 下一步是向组织添加一个所谓的计划。 切换回它并选择“计划”选项卡,然后单击“新计划”按钮。 计划基本上允许对单个策略进行分组并将其分配给服务。 将其称为“ InternetBlackList”,然后单击相应的按钮来创建它。 从“计划”概述中,通过单击按钮选择“策略”和“添加策略”。 定义“ IP黑名单策略”,然后输入您不希望访问该服务的潜在恶意IP地址。

为了能够发布我们的服务,我们需要将新创建的计划链接到BookListing服务。 导航回到那里,然后选择“计划”选项卡。 选择“ InternetBlackList”计划,然后单击“保存”。 现在,查看服务上的“概述”页面最终将显示“就绪”状态,让我们进行发布。

现在已经发布了,我们可以实际使用它了。 但是,我们将在此处采取另一步骤,并通过合同将服务链接到应用程序。 通过创建合同,您可以通过服务提供的特定计划将应用程序连接到服务。 您可能希望这样做,以便您的应用程序可以成功调用服务。

通过导航回到公共图书馆组织并单击“新建应用程序”按钮来创建应用程序。 命名为“慕尼黑”,保留1.0的版本,并根据需要输入说明; 点击“创建应用程序”。 剩下要做的第一步是链接服务和应用程序。 这是通过合同完成的。 选择“合同”页面,然后使用按钮创建“新合同”。 在“查找服务”字段中输入“ book”,然后搜索我们的BookListing服务。 选择它。 现在您可以创建合同。

最后一步是在“概述”页面中注册新创建的应用程序。

就是这样 我们现在有一个已发布的服务和一个注册的应用程序。 如果导航到应用程序的API页面,则可以看到该应用程序的托管端点。 如果将鼠标悬停在该服务上,则会出现一个“复制”按钮,该按钮可让您复制通过APIMan网关传递的托管端点的URL。

如果您尝试通过指定的列入黑名单的IP地址访问该服务,则会出现错误。 如果没有,您将通过网关代理到该服务。


注意apikey查询字符串吗? 这是网关用来定位服务并代理对被管理端点的呼叫的密钥。 如果您不想将其作为查询字符串的一部分发送,则还可以使用称为X-API-Key的自定义HTTP标头。

下一步是什么?

那是一个非常快速和不完整的过程。 但是希望您对它背后的基本概念有所了解。 APIMan和其他Overlord子项目发展很快。 他们很高兴收到您的贡献 ,如果您喜欢自己所看到的内容或收到其他反馈,请随时与该项目联系。 如果您想了解更多类似API的方法,还可以观看和收听以下截屏视频。 这有些过时了,但仍然很有帮助。

翻译自: https://www.javacodegeeks.com/2014/09/api-management-in-wildfly-8-1-with-overlord.html

具有Overlord的WildFly 8.1中的API管理相关推荐

  1. c#中overlord实例_具有Overlord的WildFly 8.1中的API管理

    c#中overlord实例 昨天,我简要介绍了霸王项目家族. 今天是时候进行试驾了. API管理子项目两天前发布了1.0.0.Alpha1,并根据18个月的路线图介绍了第一组功能. APIMan到底是 ...

  2. java ee4.8下载_在WildFly 8.2中修补焊接3 – Java EE 8的第一个实验RI

    java ee4.8下载 Java EE 8一直在发展,并且已经提出了几个新的组件JSR. JSR 365将定义CDI 2.0的规范. 红帽已经开始开发Weld 3的实现原型, Alpha3最近发布了 ...

  3. 在WildFly 8.2中修补焊接3 – Java EE 8的第一个实验RI

    Java EE 8一直在发展,并且已经提出了几个新的组件JSR. JSR 365将定义CDI 2.0的规范. 红帽公司已经开始研究Weld 3的实现原型,并且Alpha3最近发布了 . Red Hat ...

  4. Swift 中的内存管理详解

    这篇文章是在阅读<The Swift Programming Language>Automatic Reference Counting(ARC,自动引用计数)一章时做的一些笔记,同时参考 ...

  5. 跟着石头哥哥学cocos2d-x(三)---2dx引擎中的内存管理模型

    2019独角兽企业重金招聘Python工程师标准>>> 2dx引擎中的对象内存管理模型,很简单就是一个对象池+引用计数,本着学好2dx的好奇心,先这里开走吧,紧接上面两节,首先我们看 ...

  6. 一文详解启发式对话中的知识管理 | 公开课笔记

    来源 | AI科技大本营在线公开课 分享嘉宾 | 葛付江(思必驰 NLP 部门负责人) 整理 | Jane [导读]自然语言对话系统正在覆盖越来越多的生活和服务场景,同时,自然语言对话的理解能力和对精 ...

  7. 谈谈微服务设计中的API网关模式

    来源:架构头条(ID: ArchFront) 原文:http://dwz.date/crrw 根据 Gartner 对微服务的定义:"微服务是范围狭窄.封装紧密.松散耦合.可独立部署且可独立 ...

  8. tensorflow2.0中dataset API 总结

    tensorflow2.0中data API 总结 tf.data.Dataset.list_files(filename) 参数:filename:文件路径或者文件路径列表,如:'-/csvData ...

  9. Linux系统中的软件管理

    Linux系统中的软件管理 1 Linux中软件包的类型 2 软件包的名称结构 3 rpm命令管理软件包 4 本地软件仓库的搭建 4.1 系统软件仓库的作用 4.2 搭建方法 5 dnf 软件管理命令 ...

最新文章

  1. JSON+AJAX 简单实例
  2. ThinkPHP框架搭建网站
  3. 关于Python中的self
  4. chrome 插件开发心得
  5. 算法提高课-图论-单源最短路的综合应用-AcWing 342. 道路与航线:最短路dijkstra、拓扑排序 、综合题、好题
  6. 数组元素的修改会影响到转换过来的结合_数组长度属性背后有什么魔力?
  7. 无界面(webdriver.PhantomJS)访问有道
  8. 怎样让VB6程序只能运行一次
  9. 合并两个有序数组-python
  10. 分布式开源调度框架TBSchedule详解
  11. 空间中常见曲面图形的绘制(matlab)
  12. java 1.5 jdk_jdk1.5安装及配置
  13. HTML translate 属性
  14. 【VOLTE】SRVCC的演进
  15. 指纹采集器测试软件,售完存档:小熊做的关于奔凯BIOCOME USB指纹采集器 指纹识别仪TCR4 Win7 Win8 Win10下的使用教程...
  16. Python 他来了,他来了!
  17. C# 重写(override)
  18. draw.io 插入 word
  19. 将字符串,数组等任意格式转为json(JSON)数据,Arrays是数组工具类,将任意数组转字符串或数组操作
  20. CSDN日报190318:简单爬虫:给女友定时发送睡前小故事

热门文章

  1. 解决获取请求参数的乱码问题
  2. 虚拟机安装windows ghost版本系统记录完整过程
  3. android菱形imageview,ios – 在UICollectionView中,UIImageView应该是圆形视图而不是菱形...
  4. 云服务器mqtt协议,云服务器mqtt协议
  5. 微信小程序定时器setInterval()的使用注意事项
  6. jakarta ee_Jakarta EE的拟议命名空间
  7. angular1.2.27_Angular 8 + Spring Boot 2.2:立即构建一个CRUD应用程序!
  8. 公证服务信息_使用多个公证员提高网络吞吐量
  9. OCA第5部分中的Java难题
  10. jboss架构_检查Red Hat JBoss BRMS部署架构的规则和事件(第二部分)