我的新项目来啦!
大家好,我是鱼皮,封面是本人。咳咳
此前我在星球里已经全程直播带大家完成了 2 个项目,并且给大家分享了简历的写法。
这次,打算带大家做点不一样的,我们来搞一个网上找不到的项目 —— API 开放平台。
不是博客、管理系统、不是电商项目、不是 RPC 阿巴阿巴,而是一个真实的企业级的项目(或者叫产品),所以一般按照正常路线学习的话是接触不到这类项目和知识的。
下面给大家介绍一下,也会讲到不少知识点。
什么是 API?
在了解 API 开放平台前,先要明确什么是 API。
通俗地说,API 即接口,也就是我们后端同学提供的产物,比如查询某一天的天气、查询某地理位置附近的店铺,这些都是 API。
如果我们只是自己做一个小项目,比如学生管理系统,那么基本上对于学生的增删改查接口,都是我们自己开发的。但是在企业中开发,我们经常需要跨团队合作,可能需要其他团队提供接口给我们来调用,从而可以复用其他系统现有的能力。
比如我们现在想做一个人脸识别 APP,但显然我并不懂人脸识别、AI 之类的技术,但是我们可以直接使用别人开发好的 API(第三方 API)来实现这个功能,这就为我们开发提供了极大的方便,解耦了算法和工程。
什么是 API 开放平台?
随着各团队开发的 API 数量越来越多,API 的管理、维护、监控会越来越复杂,因此我们需要一个统一的平台来管理这些 API,也就是 API 管理平台。
而如果你管理的这些 API 需要提供给 外部的开发者 来调用,就需要有一个对外开放的 API 管理平台,允许外部访问、申请调用,即 API 开放平台。
如今,网上有非常多的 API 开放平台,有免费的也有收费的,比如搏天 API、腾讯地图 API、腾讯云 API 等等:
拜他们所赐,我们开发应用的成本大大降低了。
了解什么是 API 开放平台后,我们一起来思考一下,怎么做一个 API 开放平台?简单么?
实现思考
API 接口平台最直接的功能就是让开发者调用管理员发布的接口,单纯实现接口调用很简单,用个 HTTP Client 就可以了。
但是!真实情况可比这复杂多了,要考虑很多点,比如:
怎么保证接口的安全、稳定? 怎么防止用户恶意调用接口? 怎么统计用户的调用次数? 怎么降低接口接入的成本? 怎么降低接口调用的成本? 怎么让系统更易于维护?
等等等等。。
要想解决或预防这些问题,必然是需要一些架构设计和技术知识的。
而这次,我会全程直播、手把手带大家解决上述问题,从 0 到 1 做一个标准、规范的 API 开放平台。
项目介绍
这次带大家做的项目会包括如下功能:
用户可以注册登录,分配调用权限 管理员可以发布接口、下线接口、接入新接口 用户可以查看接口文档,开通并在线调用接口,每次调用都会进行统计 管理员可以可视化分析接口的调用情况
界面可能会有点像 Swagger 接口文档:
架构设计
整个项目的架构可能比大家预想的会更复杂,不是一个单体系统,而是包含 5 个子项目 ,分别是:用户前台、后台管理系统、API 网关、客户端 SDK、模拟接口项目。
如图:
看到这个图,大家可能就已经 get 到了:这个项目侧重于后端,包含较多的编程技巧、编程思想、后端业务逻辑、架构设计层面的知识,不再是一个简单的增删改查项目了!
举个例子,我会给大家详解如何 快速开发一个完整的基础管理系统 (前端 + 后端,熟练后 10 分钟搞定)、用 API 签名认证 提升接口安全性、如何用 API 网关 全局业务处理和鉴权、如何通过 Spring Boot Starter 开发易用的客户端 SDK 等等。
技术选型
用的依然是主流的、最新版本的技术栈。
前端:Ant Design Pro(最新版本)+ React 18 + Ant Design 组件库 + Umi 框架
后端:Java + MySQL + MyBatis-Plus + SpringBoot 2.7.x(包含 Starter 开发)+ Knife4j + Hutool 等
项目收获
这个项目适于学习过后端开发技术(比如 Java Web),希望做一个区别于管理系统的、有亮点的、写在简历上加分的项目,并提升自己的编程能力、编程思想和架构设计能力的同学。
全程直播开发,带你了解并巩固做项目的完整流程,能够独立开发及上线项目 学习最新版本前后端开发脚手架的使用,掌握快速生成代码、前后端协作的方法,提高百倍开发效率 跳出传统的 CRUD 管理系统项目,学习企业级第三方平台的架构设计和开发 学习客户端 SDK、API 签名认证、API 网关等后端知识和编程技巧 学习阅读官方文档的方法和经验,提升自主学习的意识和能力 所有 Bug 和问题均为直播解决,带你提升自主解决问题的能力
第一期试看
其实这个项目已经做了 4 期了(近 10 个小时),也是得到认可后才敢给大家推荐哈哈。
给大家免费试看第一期完整版,觉得有收获的朋友,可以跟着我做完后续项目~
指路:https://www.aliyundrive.com/s/aVM4LrYQAGa,提取码: lu32
做项目的过程中,我也全程帮大家记录了笔记,便于学习:
大家有任何关于项目的问题,也都可以通过向我或其他做项目的小伙伴提问得到解决,不需要像看网上某些项目教程一样,踩坑的时间比学习还长。
最后声明,这个项目是我在自己星球里带大家做的完整项目,如果大家想要学习的话,欢迎加入我的 编程知识星球 —— 一个帮助你学编程、少走弯路、手把手带你做项目的编程学习圈子。
加入后可见所有项目的往期直播回放、实时笔记和最新源码,并且我会 1 对 1 解决你的问题、帮你规划学习和求职路线。
可以加我微信 yupi5927,备注【加入星球】和自己的情况 领取优惠 加入星球,不备注不通过,非诚勿扰谢谢。
也可以直接扫下方二维码体验,卷起来!
往期推荐