67

通过Swagger生成的Json创建Service&自定义开发者界面 | API

 5 years ago
source link: http://www.10tiao.com/html/360/201807/2663488692/1.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

前言


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

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

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

本文分为系列文章,将会有多篇,初步预计将会有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等技术认证。



About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK