具有Overlord的WildFly 8.1中的API管理

昨天,我简要介绍了霸王项目家族。 今天该试驾了。 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式学习笔记-代理模式

1. 概述 为其它对象提供一种代理以控制对这个对象的访问。 解决的问题:如果直接访问对象比较困难,或直接访问会给使用者或系统带来一系列问题。这样对于客户端(调用者)来说,就不需要直接与真实对象进行交互&#xff0c…

Tomcat配置自签名https

从JDK中找到keytool.exe,随便复制到一个方便的目录,在命令行中进入这个目录。 第一步:为服务器生成证书 tomcat.keystore,名字就是域名,其他的看着写。 keytool -genkey -v -alias tomcat -keyalg RSA -validity 3650…

MFC学习之路之多媒体 --(1) DirectShow

可以说整个Windows的多媒体编程都是以DirectShow为基础,那好,来吧,我们直接看DirectShow的一段基础代码。 bool Mp3::Load(LPCWSTR szFile) {Cleanup();ready false;if (SUCCEEDED(CoCreateInstance( CLSID_FilterGraph,NULL,CLSCTX_INPROC_…

使用反射处理Java批注

在上一篇有关Java注释的文章中,我概述了一个最近的用例,并为您提供了一些自定义注释的示例以及如何使用它们。 在本文中,我将更进一步,并为您提供一些自定义注释的示例,以及如何使用Java Reflection API处理这些自定义…

Excel 2007 Open XML文件结构(2)

Excel 2007 Open XML文件结构&#xff08;2&#xff09; 在以上文件中&#xff0c;根据<sheet>元素中r:id属性的值可得到工作表数据的XML文件。例如&#xff0c;在workbook.xml文件中名为工作表1的工作表的r:id属性为rld1&#xff0c;在以上文件中根据ID找到以下代码&…

Vue.js最佳实践

Vue.js最佳实践 第一招&#xff1a;化繁为简的Watchers 场景还原&#xff1a; created(){this.fetchPostList() },watch: {searchInputValue(){this.fetchPostList()} } 组件创建的时候我们获取一次列表&#xff0c;同时监听input框&#xff0c;每当发生变化的时候重新获取一…

Api demo源码学习(8)--App/Activity/QuickContactsDemo --获取系统联系人信息

本节通过Content Provider机制获取系统中的联系人信息&#xff0c;注意这个Anctivity直接继承的是ListActivity&#xff0c;所以不再需要setContentView函数来加载布局文件了&#xff08;我自己新建一个项目来跑这个anctivity时在这里卡了半天&#xff09;。 在AndroidManifest…

游戏大厅 从基础开始(6)--绕回来细说聊天室(中)之女仆编年史1

上一篇我们大致的了解了几种聊天室的行为模式 最简单明了的推模式 几乎不需要任何多余的语言来描述它的实现 这一篇我们看看如何实现拉模式更有效。 本图清晰的表现了"拉"模式聊天室的行为。 并发多用户向数据池写数据 并发多用户从数据池读书据 数据最好以时间为…

开发自上而下的Web服务项目

这是从Alessio Soldano编辑的Advanced JAX-WS Web Services手册中摘录的示例章节。 第一章介绍了自底向上创建Web服务端点的方法。 它允许非常快地将现有bean作为Web Service端点公开&#xff1a;在大多数情况下&#xff0c;将类转换为端点只需在代码中添加少量注释即可。 但…

React中ref的使用方法

React中ref的使用方法 在react典型的数据流中&#xff0c; props传递是父子组件交互的唯一方式&#xff1b;通过传递一个新的 props值来使子组件重新 re-render,从而达到父子组件通信。当然&#xff0c;就像react官网所描述的一样&#xff0c;在react典型的数据量之外&#xff…

mediawiki自动生成sitemap

Mediawiki 1.17.0提供了generateSitemap.php生成sitemap文件&#xff0c;可不必再使用扩展。 每次调用generateSitemap.php&#xff0c;生成全部sitemap。一般是通过定时任务(Linux下是cron)调用&#xff0c;定时生成。 generateSitemap.php命令示例&#xff1a; php /wiki/mai…

垃圾收集:提高吞吐量

这篇文章的灵感来自于在内存管理术语中的“ Pig in the Python ”定义。 显然&#xff0c;该术语用于解释GC反复促进大对象世代相传的情况。 据推测&#xff0c;这样做的效果类似于Python吞下整个猎物&#xff0c;只是在消化过程中被固定住了。 在接下来的24小时里&#xff0c…

Scss基础用法

Scss基础用法 一、注释用法&#xff1a; &#xff08;1&#xff09;//comment&#xff1a;该注释只是在.scss源文件中有&#xff0c;编译后的css文件中没有。 &#xff08;2&#xff09;/! /&#xff1a;重要注释&#xff0c;任何style的css文件中都会有&#xff0c;一般放置…

(Joomla)字符串截取

在用joomla进行开发的时候&#xff0c;需要用到国外的资源&#xff0c;一些module&#xff0c;组件&#xff0c;插件之类的&#xff0c;但是我们会发现&#xff0c;在字符串这个方法都需要进行修改。因为PHP的substr方法只是针对于非中文字符串有效&#xff0c;所以要使用另外一…

Pyechart:30分钟学会pyecharts数据可视化

30分钟学会pyecharts数据可视化 小红&#xff1a;你先跟我说说什么是pyecharts吧。 小明&#xff1a;Echarts 是一个由百度开源的数据可视化javascript库&#xff0c;凭借着良好的交互性&#xff0c;精巧的图表设计&#xff0c;得到了众多开发者的认可。而 Python 是一门富有表…

Spring @Configuration – RabbitMQ连接

我一直在转换必须使用Spring Configuration机制配置到RabbitMQ的连接的应用程序-最初&#xff0c;我使用xml bean定义文件来描述配置。 这是我的原始配置&#xff1a; <beans ...;><context:property-placeholder/><rabbit:connection-factory id"rabbit…

大叔手记(12):我的一次面试经历(谈大叔如何应对面试官)

本文目的 写本文的目的&#xff0c;大叔不是为了装逼&#xff08;虽然说话的口气有时候也确实有点装逼&#xff0c;性格导致的&#xff0c;咳。。。我得改&#xff09;&#xff0c;其实大叔在公司也只是小罗罗&#xff0c;本文的目的主要是为了向大家展示如何通过各种软技能应对…

欧拉回路判断规则

无向图&#xff1a;因为欧拉路径中&#xff0c;除了起点与终点以外&#xff0c;任意点的“进”“出”次数相等&#xff0c;所以除了两个点为奇点&#xff08;度数为奇数的点&#xff09;&#xff08;终点和起点&#xff09;以外&#xff0c;其它点的度数均为偶数。 如果是欧拉回…

使用Apache Camel 2.14的轻松REST端点

Apache Camel 最近发布了一个新版本 &#xff0c; 其中一些新功能由我的同事Claus Ibsen博客发布 。 您确实应该检查他的博客条目并深入研究更多细节&#xff0c;但是我希望尝试的功能之一是新的REST DSL 。 那么&#xff0c;这是什么新的DSL&#xff1f; 实际上&#xff0c;…

认识Mahout下的云计算机器学习

认识Mahout下的云计算机器学习 Apache Mahout 是 ApacheSoftware Foundation (ASF) 旗下的一个开源项目&#xff0c;提供一些可扩展的机器学习领域经典算法的实现&#xff0c;旨在帮助开发人员更加方便快捷地创建智能应用程序&#xff0c;并且&#xff0c;在 Mahout 的最近版本…