如何开发SDK项目,详细带领理解实践

❤ 作者主页:李奕赫揍小邰的博客
❀ 个人介绍:大家好,我是李奕赫!( ̄▽ ̄)~*
🍊 记得点赞、收藏、评论⭐️⭐️⭐️
📣 认真学习!!!🎉🎉

文章目录

  • SDK-Starter 讲解
  • Starter 开发流程
    • 1.首先新建一个项目
    • 2.创建springboot项目
    • 3.修改maven地址,改成自己的
    • 4.修改pom.xml
    • 5.修改主类
    • 6.添加其他需要引用的类
    • 7.测试打包
    • 8.在其他项目中引入sdk依赖
  • Starter 总结

 
  在上一篇文章中,我们提到作为开发者,每次调用接口都需要处理这一堆繁琐的事情,比如鉴权需要自己生成时间戳,自己写加密算法,生成随机数等等,这些每个开发者写一个接口就要写一遍,这样会相当繁琐,同时开发者自己写加密算法可能还不一样,因此,需要开发一个简单易用的 SDK,使开发者只需关注调用哪些接口、传递哪些参数,就像调用自己编写的代码一样简单
  现在的问题是如何开发这样一个 SDK,其实很简单。这里为了让开发者更方便使用 SDK,我们给它提供一个 starter。就跟我们使用springboot-start一样。
在这里插入图片描述

SDK-Starter 讲解

  开发 starter 的好处:开发者引入之后,可以直接在 application.yml 中写配置,自动创建客户端。
  使用 starter 之后,比如,对于 Redis 的 starter,我们可以直接在 application.yml 配置文件中进行相关配置。我们可以在配置文件中简单地定义一个连接到 Redis 的配置块,或者对于 Swagger 接口文档,我们也可以在配置文件中进行相应的配置。这样做的好处是,我们无需手动编写繁琐的配置代码或者创建客户端实例。通过引入适当的 starter,我们就可以直接使用它们提供的代码和客户端。只需在配置文件中进行简单的配置,整个过程就自动完成了。
  这正是 starter 的作用所在。使用 starter 的好处就是,开发者引入后可以直接在 application.yml 中进行配置,自动创建相应的客户端。这样使得开发过程更加简单便捷,无需过多关注底层实现细节,而是专注于配置和使用。所以接下来就带大家来做这件事情,让我们编写的 starter 能够为开发者写配置时提供提示,并自动创建客户端(如下图所示的提示)。
在这里插入图片描述

 

Starter 开发流程

1.首先新建一个项目

在这里插入图片描述

 

2.创建springboot项目

在这里插入图片描述
然后选择依赖:Lombok、Spring Configuration Processor 后,点击Finish。
 

3.修改maven地址,改成自己的

在这里插入图片描述
 

4.修改pom.xml

首先来看这个项目的依赖,查看 pom.xml;
既然写 SDK,肯定是有版本号的。
在这里插入图片描述
0.0.1,0.0.2都可以

往下看,下面这个东西要删掉,不然会报错(一定要删掉);
这个是 maven 构建项目的方式,我们现在是要构建依赖包,而不是直接运行 jar 包的项目。
在这里插入图片描述
 

5.修改主类

  在创建完这个项目之后,默认会生成一个 Spring Boot 的主类JjlApiSdkApplication。然而,我们并不打算运行一个 Web 项目,而是提供一个现成的客户端对象给用户使用。
  现在我们的目标是为用户生成一个可用的客户端对象。刚才我们是如何生成的呢?我们手动创建了一个新的对象实例。而现在,我们希望用户能够通过引入 starter 的方式直接使用客户端,而不需要手动创建,所以我们需要编写一个配置类。
  删掉主类,创建配置类JjlApiClientConfig.java。
在这里插入图片描述
 

6.添加其他需要引用的类

  在上一篇就曾说过,调用接口时需要进行鉴权,通过Api签名认证进行校验,因此需要开发者多次自己写加密算法,生成时间戳等等。然后我们现在可以将生成加密算法写到sdk中。开发人员直接引入依赖直接调用即可。因此导入相关的类和依赖即可。
在这里插入图片描述
加密算法和调用接口的方法,都可以直接写在这里
在这里插入图片描述

 

7.测试打包

  点击右侧菜单栏中的 maven。点击 Lifecycle → install,把它安装为本地的依赖。
在这里插入图片描述
  需要将测试中的主类删除掉,我们之前把主类删掉了,所以它执行不了了,会报错。
在这里插入图片描述
 

8.在其他项目中引入sdk依赖

  依赖包打完在哪里,你设置的 maven 仓库在哪里,包就在哪里。找到依赖仓库,就在groupId这个包里面。
在这里插入图片描述
 
  如果你想给别人使用的话,要去 maven 仓库官网注册一个账号,然后上传上去。
 
然后去引入我们写好的依赖到其他需要的项目之中。
在这里插入图片描述
点击 application.yml 进行配置,依次输入 yuapi,弹出提示,它现在识别出来了我们另外一个项目中写的配置。
在这里插入图片描述

在项目中可以直接引用sdk中的类。直接进行使用,不用再多次编写加密算法之类的。让开发者专注于接口的开发。
在这里插入图片描述
之后就可以启动项目了进行测试。
 

Starter 总结

  Starter 开发,其实并不难,关键步骤只有几个。开发完后,无论是我的任何一个项目,只要引入这个包,也就是这个 starter,只需要引入这个SDK即可,直接就可以使用。
  如果大家之前有开发过项目,写过一些工具类,都可以尝试将其转化为 starter。可以将其发布到 maven 仓库中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/535350.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端面试题汇总

基础面试题 1.new 操作符做了那些事 function Fun(name){this.name name } Fun.prototype.sayHi funtion(){console.log(this.name) }function mockCreate(fn, ...args){let obj Object.create({}) // 创建一个空对象Object.setPrototypeOf(obj, fn.prototype) // 空对象…

记OnlyOffice的两个大坑

开发版,容器部署,试用许可已安装。 word,ppt,excel均能正常浏览。 自带的下载菜单按钮能用。 但config里自定义的downloadAs方法却不一而足。 word能正常下载,excel和ppt都不行。 仔细比对调试了代码。发现app.js…

供应链金融翻译,英译中如何翻译比较好

在供应链金融领域,英文翻译是一项至关重要的任务。由于供应链金融涉及多个行业、多方参与者和错综复杂的金融操作,翻译人员需要具备深厚的专业知识和精湛的翻译技巧。那么,供应链金融英文怎么翻译成中文 ,北京哪个翻译公司比较专业…

手把手写深度学习(23):视频扩散模型之Video DataLoader

手把手写深度学习(0):专栏文章导航 前言:训练自己的视频扩散模型的第一步就是准备数据集,而且这个数据集是text-video或者image-video的多模态数据集,这篇博客手把手教读者如何写一个这样扩散模型的的Video DataLoader。 目录 准…

一文告诉你服务器为什么要托管?

IDC的全称是Internet Data Center,即“互联网数据中心”,现在大家都称作“IDC数据中心” 。 什么是IDC服务器托管服务? 服务器托管是企业用户为提高公司效益、压缩成本,将自身企业的服务器及相关设备放到专业IDC服务商所建设的数…

考研C语言复习进阶(1)

目录 1. 数据类型介绍 1.1 类型的基本归类: 2. 整形在内存中的存储 2.1 原码、反码、补码 2.2 大小端介绍 3. 浮点型在内存中的存储 ​编辑 1. 数据类型介绍 前面我们已经学习了基本的内置类型: char //字符数据类型 short //短整型 int /…

10个调研分析模板,轻松搞定市场调查与分析!

市场调查与分析,对于任何一家企业来说,都是不可或缺的一环。对进入市场开展业务的企业而言,不管处于哪个阶段——初创公司,抑或是已经稳定运营的企业,了解市场动态和客户需求总是至关重要的。 但必须承认的是&#xf…

探索C++中的动态数组:实现自己的Vector容器

🎉个人名片: 🐼作者简介:一名乐于分享在学习道路上收获的大二在校生 🙈个人主页🎉:GOTXX 🐼个人WeChat:ILXOXVJE 🐼本文由GOTXX原创,首发CSDN&…

mybatis基础操作(三)

动态sql 通过动态sql实现多条件查询,这里以查询为例,实现动态sql的书写。 创建members表 创建表并插入数据: create table members (member_id int (11),member_nick varchar (60),member_gender char (15),member_age int (11),member_c…

什么时候去检测大数据信用风险比较合适?

什么时候去检测大数据信用风险比较合适?在当今这个数据驱动的时代,大数据信用风险检测已经成为个人的一项重要需求。本文将从贷前检测、信息泄露检测和定期检测三个方面,阐述何时进行大数据信用风险检测较为合适。 一、贷前检测 大数据信用风险检测在贷…

指针【理论知识速成】(3)

一.指针的使用和传值调用&#xff1a; 在了解指针的传址调用前&#xff0c;先来额外了解一下 “传值调用” 1.传值调用&#xff1a; 对于来看这个帖子的你相信代码展示胜过千言万语 #include <stdio.h> #include<assert.h> int convert(int a, int b) {int c 0…

【Python】python实现Apriori算法和FP-growth算法(附源代码)

使用一种你熟悉的程序设计语言&#xff0c;实现&#xff08;1&#xff09;Apriori算法和&#xff08;2&#xff09;FP-growth算法。 目录 1、Apriori算法2、F-Growth算法3、两种算法比较 1、Apriori算法 def item(dataset): # 求第一次扫描数据库后的 候选集&#xff0c;&am…