# API-P **Repository Path**: pz_D/api-p ## Basic Information - **Project Name**: API-P - **Description**: API开放平台的后端代码 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-09-19 - **Last Updated**: 2024-03-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目简介 (基本框架实现完成,扩展完成后准备上线服务器)之前上线过一个简单用户中心项目:地址:http://43.138.158.47/ (有效期至2024年6月),熟悉运用Docker和Nginx部署服务上线,解决跨域问题成功访问 一个提供 API 接口供开发者调用的平台。 管理员可以接入并发布接口,统计分析各接口调用情况;用户可以注册登录并开通接口调用权限,然后可以浏览接门及在线调试,还能使用客户端 SDK 轻松在代码中调用接口。 主要侧重于后端,前端使用ant design Pro框架快速开发 # 技术选型 1. Java Spring Boot 2. MySQL数据库,Mybatis-puls数据持久层框架 3. API签名认证(HTTP调用) 4. Spring Boot Starter(本地SDK开发,实现跨项目模块调用common模块的代码) 5. Dubbo分布式(RPC,Zookeeper) 6. Swagger + Knife4j接口文档生成 7. Spring Cloud Gateway微服务网关 8. JWT用户鉴权 # 项目模块 - p-API模块,项目基础模块,提供Controller业务层,Mapper数据层等基础代码 - papi-common模块,公共封装类,提供公共的service接口,实体类等 - **papi-gateway模块,网关类,涉及gateway网关,jwt鉴权,统一日志处理,接口统计等实现** - papi-sdk模块,为开发者提供SDK,尝试学习自己写一个SpringBoot Starter并运用 - papi-interface模块,提供可调用的接口 # 项目收获 - 巩固了一个完整项目的开发流程,能够独立开发 - 运用到了前端的流行框架Ant Design Pro,实现简化前端开发,节省精力,同时也能美化界面 - 学习客户端SDK、API签名认证、API网关、RPC分布式等后端开发知识 - 阅读Spring Cloud Gateway和Dubbo官方文档,根据快速入门提供的案例快速学习并运用到项目中,提高了阅读文档的能力 - 在官方案例遇见的Bug可以通过GitHub上的对应项目的issue模块或许能更快更完美的找到解决方案,提高独立解决Bug的能力 # 待扩展 - 增加限流/降级保护功能,或者配合Nginx网关优化 - 允许其他用户上传接口:用户提供一个自己的接口Host(服务器地址)、接口信息等基本信息 - 在其他用户上传接口的时候要注意验证可用性 - 要注意在数据库中增加一个字段区分服务器的地址,区分不同用户上传的接口 - 目前只用了synchronize锁来搞定并发问题,考虑优化并发问题,上线后还可以考虑增加收费模块 - 手机号短信或者微信实现注册登录 - 支付功能使用支付宝(登录用了微信,都学习一下)