文章目录
- 前言
- 一、我为什么要做这个项目?
- 二、项目简单介绍
- 三、项目技术栈
- 总结
前言
最近接触到了接口平台这个东西,非常感兴趣,于是就想自己也动手做一个具备核心功能的接口平台,本篇文章主要介绍了做这个项目的初衷以及简单介绍了一下这个项目的核心内容和使用的技术栈。
一、我为什么要做这个项目?
一直想做一个新颖的项目,不同于在学校时做的管理系统。接口平台通常是知名企业才会建设和提供的,主要功能有接口注册、接口转发、接口监控、接口文档、在线调试等功能。同时,也是想借助这个项目学习一下API签名认证、网关、RPC、分布式等后端知识,扩展自己的技术栈和架构设计能力。在升华一下,有机会参与到企业级的接口平台建设之中,统一所有接口的管理和转发,提高开发者的效率。
二、项目简单介绍
1.提供API接口供开发者调用的平台,基于SpringBoot+Dubbo+SpringCloudGateway的全栈微服务项目。
2.管理员可以接入并发布接口、统计分析各接口调用情况、编辑接口文档、接口监控、设计接口权限。开发者可以在线调试、浏览接口文档、并利用我们开发好的SDK一行调用接口平台的相关接口。
可能有些人对接口平台这个东西有点陌生,这里可以参考一下腾讯云API平台,可以看到腾讯云API平台支持接口文档说明、代码示例、以及在线调用等功能。
在这里我们特别关注一下这个在线调用和SDK,可以看到腾讯云的接口平台做的还是非常完整的,不仅有示例代码还有SDK的说明,那什么是SDK呢?可以理解为别人写好的工具类,我们拿来就直接可以用了,类似给了你一根吸管,用这根吸管可以吸到杯子里的具体东西。
试想一下,如果你让开发者调用接口平台中上线的接口,开发者还要自己封装HTTP请求、还要考虑鉴权等一系列问题,开发者的体验是多么差。如果你提供一个SDK,开发者引入这个SDK之后,只需要关注调用哪个接口以及传什么参数即可,不需要像以前一样去封装一堆东西。
当然,如果要开发一个和腾讯云API一样的平台显然是不现实的,我们在这里只要基本的功能给做完,领悟到核心的思想即可。管理员可以上线和下线接口,给用户分配接口调用次数,开发者可以浏览接口文档、在线调试,并且能够下载我们封装好的SDK,直接通过SDK一行调用第三方接口即可,然后还可以做一下统计分析的页面,例如调用次数前三的接口(用一些echarts图表组件)。
三、项目技术栈
后端的主要技术栈:
- SpringBoot框架:在spring框架基础之上开发的框架,其设计目的是用来简化应用的初始搭建以及开发过程。
- API签名认证:如果我们为开发者提供了一个接口,却对调用者一无所知,那将极其危险。所以我们需要对请求接口的人进行签名认证,只有通过API签名认证才允许放行
- SpringBootStarter (SDK开发):让开发者更方便使用SDK,我们给它提供一个starter
- Dubbo分布式(RPC、Nacos)
- SpringCloudGateway微服务网关:统一路由、统一鉴权、统一日志、统一业务处理。
前端技术栈
ES6、vue、vuex、vue-router、vue-cli、axios、element-ui、数据可视化(echarts图表)
总结
本篇文章的内容不多,主要讲解了一下这个项目的背景。在后续的文章中,作者将会介绍整个项目的架构,并且动手开发这个项目中的各个功能模块,最后在将整个项目部署出来。