通过Swagger生成的Json创建Service&自定义开发者界面 | API Management学习第三篇

前言

本文仅代表作者的个人观点;

本文的内容仅限于技术探讨,不能作为指导生产环境的素材;

本文素材是红帽公司产品技术和手册;

本文分为系列文章,将会有多篇,初步预计将会有26篇。

一、3 scale的portal

Red Hat 3scale API Management中托管了两个门户:

  • 管理门户:用于管理,API和帐户管理
  • 品牌开发者门户网站:用于公开开发人员注册和API文档

管理门户:

API BizOps

Add/invite developers, approve accounts and applications, and contact developers

Access control

Define API, create plans, set up rate limits and pricing rules

Accounts

Manage administrator and member rights to use Admin Portal

Analytics

Report API performance insights

API DevOps

REST API for administrator, automating deployments

API documentation

Document Swagger API using 3scale ActiveDocs

Developer Portal CMS

Create and customize Developer Portal

Billing

Integrate payment gateways and invoicing

3 Scale业务运营

API Documentations

API JSON规范,基于Swagger 2.0

3scale中的服务规范:

  • Name
  • System name
  • Publish (visible or hidden)
  • Description
  • API JSON specification

3scale开发人员门户

由Red Hat 3scale API Management托管

提供3scale内容管理系统(CMS)以快速创建自定义门户

默认开发人员门户开箱即用

内置页面包含HTML,CSS,JavaScript元素

用于在门户上处理和显示数据的液体标签

验证选项:

  • 用户名和密码
  • GitHub上
  • Auth0
  • 红帽单点登录

二、通过Swagger生成json文件

为Red Hat 3scale API Management管理的API创建API文档,了解Developer Portal和自定义,并探索3scale的其他基于角色的访问控制功能。

我将为在上一个模块中创建的API生成并测试ActiveDocs文档。

ActiveDocs并不是Swagger的替代者; 它是一个实例。 使用ActiveDocs,不必运行自己的Swagger服务器或处理交互式文档的UI组件。 交互式文档由3scale Developer Portal提供和呈现。

访问我在系列第一篇文章中创建的web api的swagger文件:

[root@master ~]# echo http://products-$OCP_PROJECT_PREFIX.$OCP_WILDCARD_DOMAIN/rest/swagger.yaml

http://products-david.apps.example.com/rest/swagger.yaml

通过swagger.io在线工具导入这个文件:

在YAML编辑器中,进行以下更改:

第6行:将主机更改为您的products-apicast-staging路由端点 :

第11行:将方案更改为https。

第24行:添加以下行以添加用户密钥

上面的配置代码段将扩充Products API文档,并指示需要user_key字段。并且,通过x-data-threescale-name配置,当从API文档调用此服务时,此字段将自动填充用户的实际API密钥。

在第50行、74行、99行增加key认证:

选择文件→转换并另存为JSON

三、通过json文件创建service

使用ActiveDocs创建文档:

(确认URL的方法:echo -en "\n\n`oc get route system-developer-route -n $OCP_PROJECT_PREFIX-3scale-amp --template "https://{{.spec.host}}"`\n\n")

创建一个新的描述:

在API JSON Spec*部分,将刚刚生成的json文件内容拷贝进去

点击create service:

测试ActiveDocs API和文档

单击“获取所有产品”以展开该方法。

转到“参数”部分。

单击user_key值字段。

选择ProductsApp用户密钥。

点击试用:

得到返回信息:

四、自定义Developer Portal

我们下载两个logo,用于自定义开发者界面。

RHMartBackground.jpg

RHMartLogo.png

密码登录Red Hat管理员门户的3scale。

单击Developer Portal选项卡,然后单击New Page→New File:

上传第二个文件:

更改HTML / CSS

选择main layput:

将第46行的内容:

用如下内容替换:

修改第三行内容,将echo换成RHMart

将第12行修改为如下内容:

选择homepage:

转到HTML编辑器,并在第19,98和112行中对RHMart执行搜索和替换Echo

用以下内容替换第5行:

修改CSS:

将第22行替换成:

发布5个变更:

页面验证:

成功跳转:

单击右上角的“登录”,然后使用第一个实验中,我创建的rhbankdev用户登录。

在主页上,浏览“应用程序”,“统计信息”和“凭据”部分。

登录成功:

单击文档。 请注意,显示了之前创建的ActiveDocs文档。

您可以从此页面测试API请求:

发起API请求,请求成功:

魏新宇

  • 红帽资深解决方案架构师
  • 专注开源云计算、容器及自动化运维在金融行业的推广
  • 拥有MBA、ITIL V3、Cobit5、C-STAR、TOGAF9.1(鉴定级)等管理认证。
  • 拥有红帽RHCE/RHCA、VMware VCP-DCV、VCP-DT、VCP-Network、VCP-Cloud、AIX、HPUX等技术认证。

原文发布于微信公众号 - 大魏分享(david-share)

原文发表时间:2018-07-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DevOps时代的专栏

微服务之基于Docker的分布式企业级实践

35230
来自专栏c#开发者

Smart Client Software Factory 初试

Smart Client Software Factory 初试 介绍     智能客户端的介绍我就不再这里说明了,大家可以通过Google去发现。 智能...

37960
来自专栏云计算教程系列

如何在Debian上安装MutliCraft

PS:本文撰写前已查询相关法律,本文内容不违反《互联网文化管理暂行规定》,遵守EULA协议,请勿举报。

20530
来自专栏数据派THU

独家 | 手把手教你用Python 3创建用于机器学习开发的Linux虚拟机(附安装教程、代码)

原文标题:How to Create a Linux Virtual Machine For Machine Learning Development With...

28480
来自专栏冷冷

jfinal-swagger让你的应用接口更加简单

前言 前两天逛jfinal社区,看到jfinal-swagger项目,接触到swagger,研究了一番对部分代码进行修改,成功整合到LMS,支持jfinal 多...

30490
来自专栏Guangdong Qi

根据友盟统计错误分析查找线上BUG(工具篇)

今天线上的版本出现了BUG,在启动APP的时候出现闪退情况,但是这种BUG在正常测试的时候没有测试到,怎么解决呢

94710
来自专栏aCloudDeveloper

UNIX环境高级编程笔记之文件I/O

一、总结   在写之前,先唠几句,《UNIX环境高级编程》,简称APUE,这本书简直是本神书,像我这种小白,基本上每看完一章都是“哇”这种很吃惊的表情。其实大概...

242100
来自专栏冰霜之地

手把手教你利用Jenkins持续集成iOS项目

众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段。用户们都是很挑剔的。如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一...

17630
来自专栏王亚昌的专栏

iostat命令使用

天刚上线了一台server,观察了一下,发现io比较高,想到了iostat命令,观察了一下(每隔一秒打印一次),发现有一个守护进程每隔几秒就写一次IO,再top...

8720
来自专栏DeveWork

Sass 与Compass 在WordPress 主题开发中的运用

一直以来都抱着这样的态度去做WordPress主题开发:每一次都尽量用上新接触的知识去开发WordPress(比如说开发移动主题接触移动Web 开发),我相信这...

21770

扫码关注云+社区

领取腾讯云代金券