云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

CDN_dell服务器_免费领

小七 141 0

弹簧套使用改型和springboot开发RESTful客户机了解如何使用改版和springboot开发GitHub API的restfulhttp客户端。

DR:在本文中,您将学习如何使用改型、HTTP客户机库和springboot为restfulapi创建客户机。您将使用springboot和它的RestController功能以及改造来开发GitHub API上的facade。您还将学习如何使用Google的Gson库将JSON转换为pojo(普通的旧Java对象),最后,您还将学习如何使用restfulapi的文档。如果需要,可以在GitHub存储库中找到本文中开发的参考代码。"了解如何使用改型、HTTP客户端库和Spring Boot为RESTful API创建客户端。"在推特上留言先决条件要继续阅读本文,您需要具备以下条件:JDK 8或更高版本(本文使用JDK10)。您可以选择成熟的IDE(集成开发环境)(即IntelliJ、Netbeans或Eclipse)。外部HTTP客户端,如curl、Postman等。GitHub帐户。一旦你有了这些,你只需要:基本了解客户机-服务器体系结构。一些关于HTTP协议的知识。一些Java编程语言的基础知识到中级知识)。关于弹簧靴的基本知识。什么是RESTful客户端?REST代表表示状态转移,是一种用于设计webapi的体系结构样式(应用程序编程接口)。REST不是一个标准,而是一组用于在中设计web api的约束精心设计的格式。在REST中,GET请求用于资源查找,PUT、POST、DELETE用于更新,分别创建和删除资源。在本文中,您将开发一个springboot应用程序,它是一个RESTful客户机,因为它遵循这些约束来与restfulapi(GitHub的API)通信。上面的解释只是一个简单的介绍,所以你知道这是怎么回事。正如您可以想象的那样,当涉及到RESTful架构时,还有更多内容。如果您有兴趣,可以在阅读本文后查看以下资源:REST体系结构约束理查森成熟度模型什么是改装?官方网站称,改版是由Square开发的一款适用于Java和Android的类型安全HTTP客户端。通过改造,您只需声明一个Java接口来表示您的API。然后,您可以通过API配置进行改造,然后您将获得接口的Java类实现。改造允许您对api进行同步和异步请求。为了简单起见,本文将只关注同步请求。但你可以在读完这篇文章后再看另一篇。改型引入的一个很酷的特性是,它允许您通过对接口中方法的注释来修改API请求。"改进的好处在于它允许您通过对接口中方法的注释来修改API请求"在推特上留言为什么要使用GitHub API?要了解改型的功能,可以使用许多restapi。但是,出于以下几个原因,您将使用GitHub的REST API:几乎所有的开发人员都有GitHub帐户,如果你没有GitHub帐户,创建一个帐户只需几秒钟。githubapiversion3遵循REST架构设计,并且有非常好的文档。最后,但并非最不重要的一点是,GitHub允许您在获得访问令牌、用户名和密码或密钥后查询其API,而无需请求您提交应用程序来使用其API。生成用于GitHub API的令牌首先,如前所述,您需要一个GitHub帐户。创建(或登录)您自己的帐户后,单击GitHub的个人资料照片(页面右上角),然后选择设置选项。在该页面上,单击页面左侧窗格中的Developer settings,然后单击Personal access tokens(同样在左侧窗格中)以到达管理访问令牌的页面。在此页面上,单击Generate new token。现在,GitHub将向您显示一个表单,在该表单中,它将要求您输入令牌的描述(您可以插入类似于"改型客户端"的内容),并要求您选择要赋予该令牌的范围。为此,您可以选择repo和删除\u repo作用域。作用域决定了使用将获得的令牌可以在GitHub的API上执行的查询类型。要完成,请单击Generate token创建令牌。把这个新的代币放在笔记本电脑上安全的地方。使用改型和springboot创建RESTful客户端在本节中,您将创建一个springboot应用程序,它可以通过githubapi获取、发布和删除GitHub存储库。对于初学者,请转到Spring initializer页面,并按如下方式填写表单:生成a:在页面顶部,选择"Gradle Project"。组:您可以将此字段保留为com.示例.工件:您可以在这个项目中输入github client。搜索依赖项:在这里,您必须键入"web"并选择出现的第一个选项。这将使一个名为"Web"的绿色标签出现在选定的依赖项部分。你可以不动其他选项。然后,单击GenerateProject。单击此按钮将使此页面向您发送github-客户端.zip把你的项目归档。在您的首选位置(例如~/Projects/)解压缩此文件并将其导入IDE。目前,您的项目只包含一个名为GithubClientApplication的类。此外,它还包含生成.gradle文件:springbootstarterweb和springbootstarter测试。如果使用的是Java10,则必须更新生成.gradle归档如下// ... 别碰其他东西。。。依赖关系{// ... 不要删除其他两个依赖项。。。编译('javax.xml.bind:jaxb公司-api:2.3.0版')}请确保您允许IDE在更新此文件后导入更改。定义域类根据GitHub文档,对其API端点的所有请求(即https://api.github.com)将接收JSON响应(至少在API的版本3上)。如果要从githubapi接收JSON响应,则需要Java类来表示这些数据。由于不想浪费时间创建这些类,可以使用Eclipse(IDE)在Git插件上使用的库。这个库包含了本文中需要的所有类。要导入它,请打开生成.gradle文件,并按如下方式更新:// ... 保持其他配置不变。。。依赖关系{// ... 保持其他依赖关系不变。。。编译('org.eclipse.mylyn.github:org.eclipse.egit.github.core:2.1.5')}要了解这个库的更多信息,请在GitHub上查看它的页面。使用改造来使用restfulapi安装了提供Java类来表示GitHub响应的库之后,您将创建一个与GitHub的API通信的服务。为此,首先在主包中创建一个名为APIConfiguration的类(例如。,com.example.githubclient). 这个类将包含一些引用,您将需要这些引用向GitHub发出API请求。这里是这个文件的内容:包裹com.example.githubclient;公共接口API配置{静态最终字符串API_BASE_URL="https://api.github.com/";static final String API_VERSION_SPEC="应用程序/vnd.github.v3+json";静态final String JSON_CONTENT_TYPE="application/JSON";}你可以用一个引用当前API版本的API(作为API的引用,你可以在API中看到一个引用)。这样,您就可以将GitHub的存储库API转换为Java接口。首先在项目中导入改装。为此,请打开生成.gradle归档并更新如下:// ... 保持其他配置不变。。。依赖关系{// ... 保持其他依赖关系不变。。。实施('com.squareup.refinition2:改装:2.4.0')实施('com.squareup.refinition2:转换器-gson:2.4.0版')}然后,在com.example.githubclient将此接口的内容打包并替换为:包裹com.example.githubclient;进口org.eclipse.egit.github.core.Repository;进口org.eclipse.egit.github.core.event.DeletePayload;进口改装2.来电;进口改装2。http.Body;进口改装2。http.删除;进口改装2。http.GET;进口改装2。http.Header;进口改装2。http.POST;进口改装2。http.路径;进口java.util.List;公共接口存储接口{@GET("用户/回购")调用listRepos(@Header("Authorization")String accessToken,@Header("Accept")字符串apiVersionSpec);@删除("repos/{owner}/{repo}")CalldeleteRepo(@Header("Authorization")String accessToken,@Header("Accept")String API版本规范,@Path("repo")字符串repo,@Path("owner")字符串所有者);@POST("用户/回购")调用createRepo(@Body Repository repo,@Header("Authorization")String accessToken,@头("Accept")字符串API版本规范,@Header("Content Type")字符串contentType);}正如您将看到的,您不需要为这些方法提供实现。改造将为您处理此接口中的方法。每个方法顶部的注释(例如@POST)定义了调用该方法时改型将使用的HTTP方法。注释的参数(例如"user/repos")定义了在执行特定请求时将添加到API端点的路径。@Header注释用于指定HTTP请求头t