多平台统一管理软件接口,如何实现多平台统一管理软件接口
442
2022-09-01
本文关于api接口管理怎么实现?程序员常用的API接口管理神器。
将API接口放服务端,使用时直接从服务器获取即可。前后端也只需维护一份接口,方便维护更新。
一般我们需要的接口信息有:
url-地址
method-请求方法
params-参数
type-参数类型
const schemas={
projectId: { type: String, required: true },
url: { type: String, required: true },
method: { type: String, required: true },
tags: { type: String, required: true },
name: { type: String, required: true },
type: { type: String },
auth: { type: String },
input:{},
output:{},
description:{type:String},};
const apiList={};const getApiFn=async ()=>{
const apis=await getList();
apis.map(api=>{
const {name,type,...rest}=api;
const funcName=`${name}Fn`;
const paramsKey=type||(rest.method==='post'?'data':'params');
apiList[funcName]=data=>fetcher({...rest,[paramsKey]:data});
});
return apiList;};
使用:
import apiList from '@app/utils/getApis';try{
const {code,token,message:msg}=await apiList.loginFn(values);
if(code===200){
message.success(msg);
storage.set('token',token);
props.router.push('/');
}}catch(err){}
获取apis配置信息。
const getConfigs=app=>{
app.get('/api/list',(req,res)=>{
listApi(db,req,res);
});
return queryList(db,{current:1,size:1000},'url');};
启动接口服务。
const start=app=>{
const getApis= getConfigs(app);
getApis.then(result=>{
const apis=classifyArr(result.list,'tags');
Object.keys(apis).map(tag=>{
fnList[tag](app,apis[tag]);
});
}).catch(error=>{
console.log(error);
});};
添加/编辑接口
我们的接口是基于项目来设计的,所以我们需要根据项目id来获取接口信息。
import fetcher from './fetcher';import {projectId} from '@app/configs/projects';const getApis=()=>fetcher({url:'/api/list',params:{projectId,current:1,size:1000}});
我们可以为用户设置不同的项目,获取的接口信息也会不同。方便我们切换和维护。
页面上测试接口。可自行配置代理,设置token。
const testFn = async values => {
try{
const input=strToJson(values.input||'{}');
const {url,method,type}=state;
const paramsKey=type||method==='post'?'data':'params';
const result=await testFetcher({url,method,[paramsKey]:input});
form.setFieldsValue({
output:JSON.stringify(result),
});
}catch(err){
form.setFieldsValue({
output:err,
});
}};
前端添加接口
服务端接口
const testApi=(db,req,res)=>{
/* db.find((error,result)=>{ if(error){ return res.status(res.statusCode).send({error}); } return res.status(200).send({result}); }); */
return res.status(200).send({
result:{
total:2,
list:[{name:'test1'},{name:'test2'}],
current:1,
size:10,
},
});};module.exports={
testApi,};
测试
如今,API已在软件、Web和移动应用程序开发领域无处不在,从企业内部到面向公众的应用以及与合作伙伴进行系统集成。通过使用API,开发人员可以创建满足各种客户需求的应用程序。而软件架构也在随着应用程序开发方法的改变而改变。
由于API在软件开发过程中如此关键,那么对API的管理就显得格外重要。通过API管理工具和平台能够大大简化API管理的难度和复杂度。下面列举了一些顶级API管理工具和平台,可供您参考。
eolinker是一个接口管理服务网站,如果不想自己部署YApi、Rap2、Swagger等的团队可以使用,免费版的功能对于小型团队来说足够了。官网:https://www.eolinker.com
Gravitee.io是一个用于管理API的开源平台,这个工具是灵活的并且是轻量级的。它具有开箱即用的功能,例如速率限制,IP过滤,跨域资源共享,即插即用选项,具有基于OAuth2和JSON Web令牌策略的开发者门户,负载平衡等。
但是,此API管理工具的主要功能是能够生成细粒度的报告以理解API的数据是如何使用的。
APIman.io是由Red Hat引入的一个顶级API管理平台,这个平台在GitHub中可以找到,为后端开发人员提供了很多便利。这包括:
快速运行
具有可分离策略引擎的基于策略的治理
异步功能
增强的结算和分析选项
REST API可用性的管理
限速,还有其他
WSO2 API Manager是一个完整的生命周期API管理平台,可以随时随地运行。可以在企业内部和私有云上执行API的分发和部署。除此之外,它还提供了一些其他的便利。其中一些是:
高度定制化
管理策略易用,
为SOAP或RESTful API设计和原型的可能性,
更好的访问控制和货币化设施等
Kong是一种广泛采用的开源微服务API工具,它使开发人员能够快速,轻松,安全地管理一切。它的企业版带有许多特性和功能,例如:
开源插件的可用性
一键式操作
通用语言基础架构功能
强大的可视化监控功能
常规软件运行状况检查
OAuth2.0权限,以及
更广泛的社区支持
Tyk.io 用Go编程语言编写,也是公认的开源API网关。
它带有开发者门户,详细的文档,用于API分析的仪表板,API的速率限制,身份验证以及各种其他此类规范,可帮助组织专注于微服务环境和容器化。但是,其基于商业的服务仅适用于付费版本。
Fusio是另一个开源API管理工具,开发人员可以使用它从不同的数据类型创建和维护REST API。它具有高效的生命周期管理功能,例如用于管理控制的后端仪表板,详细的文档,用于传入请求的JSON验证以及满足用户权限的范围处理。
而且,此APIM平台会自动生成OAI和RAML要求,并根据定义的架构创建自定义的客户端SDK。
Apigility由Zend框架设计和维护,是考虑用于API管理的下一个开源框架。 该平台创建并展示其代码的JSON表示形式。它还为他们提供了不同的版本控制选项,以及通过OAuth2进行身份验证的简便性和包含API蓝图的文档。
SwaggerHub被40多个组织考虑用于管理API,它也是最好的开源API管理工具之一。
该平台为后端开发领域的设计人员和开发人员提供了广泛的选择。它为他们提供了强大而直观的编辑器,可在保持设计一致性的同时提供更高的效率和速度。
此外,它还提供了智能错误反馈,语法自动完成和多种样式验证器可用性的机会。
在Exicon的支持下,API Axle是另一种开源,简单且轻量级的代理,为开发人员提供了很多好处,例如:
实时分析
强大的身份验证,
记录API流量以进行统计和报告,
易于创建和管理API密钥,以及
支持REST API设计以及Go,PHP和Node.js库的使用。
该API管理工具使开发人员可以使用200多种软件和中间件模式来为混合云构建可移植且兼容的应用程序。它还提供各种预先构建的服务和强大的机制,用于调节API访问,管理多个API版本,维持速率限制以及跟踪性能指标和所涉及的每个API的分析。
Repose是一个开源的RESTful中间件平台,在不断变化的API市场中起着举足轻重的作用。该平台为组织提供了各种API处理功能,包括身份验证,API验证,速率限制和HTTP请求日志记录。
该API管理平台旨在提供格式正确且经过验证的信任下游请求的下游服务。而且,它本质上具有高度可扩展性和可扩展性,这意味着开发人员可以根据不断增长的需求轻松地使用它。
SnapLogic是一个不错的集成平台即服务(iPaaS)工具,可帮助组织获取,维持和增长其客户群。其具备的特征是:
它是快速的,多点的,并具有可灵活满足面向批处理和实时应用程序数据集成需求的选项。
它具有可扩展的体系结构,其运行方式类似于Web服务器,但也提供了拥抱多功能性的选项。
它还带有创新的数据流解决方案,鼓励组织将著名的SaaS应用程序(如SugarCRM和Salesforce)添加到其传统流程中。
DreamFactory API管理平台是下一个项目要考虑的最好的免费开源工具之一,其受欢迎的原因如下:
它为开发人员提供了无需手动编写API即可进行移动应用程序开发的方法。它使他们能够将任何SQL/NoSQL数据库,外部HTTP/SOAP服务或文件存储系统集成到DreamFactory环境中,并自动获得全面,灵活,完全文档化且随时可用的REST API。
除了访问用于分页,复杂过滤器,虚拟外键,相关表联接等的API参数之外,该平台还为SQL数据库提供了详细的REST API。
DreamFactory API管理平台的另一个独特功能是,它可以立即将JSON请求转换为SOAP,反之亦然。
此外,该平台还以易于管理的形式提供了高度安全的用户管理,SSO身份验证,CORS,JSON Web令牌,SAML集成,API端点上基于角色的访问控制,OAuth和LDAP。
最后但并非最不重要的一点是,3Scale是此API管理工具列表的补充。
API管理工具由Red Hat拥有,它使大小型企业都可以通过以下功能轻松安全地管理其API:
它采用了一个分布式的云层来集中API程序的控制。这样可以更轻松地控制分析,可访问性,开发人员工作流程,获利等。
由于它托管在分布式云托管层上,因此具有高度的灵活性和可扩展性。
3Scale API的OpenShift集成功能使您能够以自动化且封闭的方式运行高性能应用程序。
这个完整的生命周期API管理平台使开发人员可以随时计划,设计,应用,发布,管理,分析,优化和淘汰您的API,以提供卓越的体验。
它具有通过Web或移动应用程序轻松共享组织数据,服务和内容的功能。
最重要的是,3scale API管理平台为您提供了将各种加密,身份验证和授权协议注入开发环境的机会。这使后端开发公司能够为其目标用户群提供适合他们的高度安全的移动应用程序体验。
上述就是小编为大家整理的api接口管理怎么实现?程序员常用的API接口管理神器。
国内(北京、上海、广州、深圳、成都、重庆、杭州、西安、武汉、苏州、郑州、南京、天津、长沙、东莞、宁波、佛山、合肥、青岛)易才软件分析、比较及推荐。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~