专栏首页大魏分享(微信公众号:david-share)通过Swagger生成的Json创建Service&自定义开发者界面 | API Management学习第三篇

通过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)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 深度分析:为啥说API是IT的未来?

    本文在第一节,参考引用了 刘国强 CA Technologies中国区技术总监的《到底什么是“API经济学”》文章部分内容。本文其他章节技术部分则参考了社区和红...

    魏新宇
  • 从API源码看API经济 | 从开发角度看应用架构13

    https://yq.aliyun.com/articles/497806?utm_content=m_42865

    魏新宇
  • API的计量与限速 | 将一个Web API纳入API管理 |API Management学习第二篇

    在本文中,我们将针对:API Management学习第一篇中编写的Restful API,进行纳管。

    魏新宇
  • 50多种适合机器学习和预测应用的API,你的选择是?(2018年版本)

    对于做工程项目和搞科研的人来说,有现成的模块或工具使用是一件多么美妙的事情啊,无需访问源码或理解内部工作机制的细节即可完成相应的任务。常用的方法是调用一些API...

    用户3578099
  • 一个“爆款”成功的API,都离不开这8条设计准则

    我已经看过很多API设计相关的文章和优秀的REST API设计教程。他们通常讨论的是适当的编码技巧和如何在给定的语言中暴露接口。尽管那些是很有用也是很需要的,但...

    BestSDK
  • 人脸识别、情感分析,开发者必备50个机器学习API|值得收藏

    该清单按照字母排序,对 API 的概述是基于对应官网所提供的信息整合而成。要是大家发现该清单中错过了某些当前流行的 API,可以在评论中告知。

    BestSDK
  • 好雨云帮一周问答集锦(2.6-2.12)

    Rainbond开源
  • [ALAPI上线了,一言API,二维码...]

    本文由 Alone88 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名 最后编辑时间为...

    Alone88
  • Laravel API 开发推荐阅读清单

    社区优秀文章 Laravel 5.5+passport 放弃 dingo 开发 API 实战,让 API 开发更省心 - 自造车轮。 API 文档神器 Swag...

    琯琯
  • 【史上最全】国内外常用精品API接口汇总

    API是获取网络服务最便捷的方式,合理地使用API开发项目可以大大提高开发效率,把精力都集中在程序的业务逻辑之上,避免重复造轮子。推荐给大家个人觉得很赞的第三方...

    凯哥Java

扫码关注云+社区

领取腾讯云代金券