迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

使用 Java 创建 REST 客户端

作者:迹忆客 最近更新:2023/08/10 浏览次数:

REST 是一组为 Web 程序创建的规则和规定,可以轻松地相互交互,而无需进行大量处理。

需要客户端应用程序来访问这些 Web 程序使用的 REST 服务,称为 REST 客户端。

本文将介绍创建 REST 客户端的不同工具。 第一个示例演示了使用 Spring Boot 和 OkHttp 创建简单 REST 客户端的步骤。


使用 Spring Boot 创建 Java Rest 客户端的步骤

要创建 REST 客户端,IDE 需要一个框架才能工作。 框架是一个包含所有基本库包和运行时相关组件的环境。

Spring Boot 是一个用于创建微服务的开源 Java 框架。 我们需要以下资源来使用 Java 和 Spring Boot 创建 REST 客户端。

  • Eclipse IDE 或 Spring 工具套件
  • JDK 1.8 或更高版本
  • Maven 3.2+

我们将在以下小节中使用上述所有工具逐步创建一个 REST 客户端。

创建一个空项目

第一步是创建一个空项目。 这可以通过两种方式完成。

  1. 创建一个空项目并手动添加所有依赖项。
  • 打开 Spring Tool Suite,转到“文件”>“新建”>“其他”>“Web”>“动态 Web 项目”,然后单击“下一步”。
  • 指定项目名称,选择运行时服务器,选择 Dynamic Web 的模块版本,然后单击“下一步”。
  • 最后一部分显示了库树。 可以在此处对整个文件路径树进行任何更改。
  1. 使用 Spring Initializr 获取预初始化的项目。

Spring Initializr 下载一个根据程序员需要的依赖项进行配置的预初始化项目,并且可以从 https://start.spring.io/ 创建它。

Java 休眠客户端

此 Web 服务创建一个包含所有选定依赖项的 Maven 或 Gradle 项目。 单击“生成”后,浏览器将下载一个 .zip 文件,其中包含 Web 项目所需的所有必要文件和库。

此处使用的示例项目使用 REST API 服务从 URL 中提取引号,并在客户端发送 GET 请求时返回结果。

项目给定了一个名字——org.clientforquotes,这里只需要一个依赖,所以只选择了spring web。

创建 REST 服务

REST 服务接受 GET 和 POST 等命令并返回响应。

要创建运行 REST 服务的应用程序,请创建一个 Java 类并为其命名。 在此示例中,该类被赋予一个名称 - mainapplication.java,该名称在 src/main/java 文件夹中创建。

该类包含 main 方法。 当通过初始化器创建时,可以发现该类已经存在。

该类由三个主要组件组成:

  1. 为了查看输出,添加了记录器方法。
  2. 从域接收的数据通过 JSON 库进行处理。 这是使用 RestTemplate 方法完成的。
  3. 应用程序在启动时提取报价。 当使用 CommandLineRunner 执行 Rest Template 时,会发生此过程。

以下是创建 REST 服务的源代码。 该文件名为 MainApplication.java。

package com.example.clientforquotes;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@SpringBootApplication
public class MainApplication {

    private static final Logger log = LoggerFactory.getLogger(MainApplication.class);

    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
    }

    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
        return builder.build();
    }

    @Bean
    public CommandLineRunner run(RestTemplate restTemplate) throws Exception {
        return args -> {
            Quote qt = restTemplate.getForObject
                    ("https://quoters.apps.pcfone.io/api/random", Quote.class);
            log.info(qt.toString());
        };
    }
}

创建一个存储域中数据的类

创建另外两个 .java 文件 - pullquote.java 和 basevalues.java 以添加 getter-setter 方法、构造函数和 To_String 函数。

pullquote 类存储从 URL 域检索的引用值,并在调用该类时显示它。 以下是pullquote.java文件的源代码。

package com.example.clientforquotes;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public class Pullquote {

    private String object_type;
    private Basevalue qt_value;

    public Pullquote() {

    }

    public String getType() {
        return object_type;
    }

    public void setType(String type) {
        this.object_type = type;
    }

    public Basevalue getValue() {
        return qt_value;
    }

    public void setValue(Basevalue value) {
        this.qt_value = value;
    }

    @Override
    public String toString() {
        return "The quote for you = {" +
                "type='" + object_type +'\'' +
                ", value=" + qt_value +
                '}';

    }
}

我们还将在文件basevalue.java中创建一个类Basevalue来存储内部引用。

package com.example.clientforquotes;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public class Basevalue {

    private Long sr_no;
    private String qt;

    public Basevalue() {
    }

    public Long getId() {
        return this.sr_no;
    }

    public String getQuote() {
        return this.qt;
    }

    public void setId(Long id) {
        this.sr_no = id;
    }

    public void setQuote(String quote) {
        this.qt = quote;
    }

    @Override
    public String toString() {
        return "Value{" +
                "id=" + sr_no +
                ", quote='" + qt + '\'' +
                '}';
    }
}

将任何新的依赖项添加到 pom.xml

每个 Web 项目都有一个 pom.xml 文件,用于存储项目所需的依赖项。 如果在项目中导入新库,则必须将其依赖项添加到其 pom.xml 中。

以下是我们项目的 pom.xml 文件。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>client-for-quotes</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>client-for-quotes</name>
    <description>Project for fetching quotes</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

运行应用程序

运行应用程序的方法有很多种。

  • 直接在 Spring Boot 应用程序上运行它。
  • 创建项目的可执行 .jar 文件。
  • 通过命令行运行它。

您可以使用上述任何方法运行我们创建的 REST 客户端。 现在让我们讨论使用其他框架创建 Java REST 客户端。


使用 OkHttp 创建 Java REST 客户端

它是一个轻量级且高效的 Java 应用程序客户端。 使用它的网络程序据说可以加载得更快。

当发出请求时,程序会向服务发送 JSON 调用。 URL 写在 .url 参数内,而请求类型写在 .post 参数内。

.build() 函数创建一个 OkHttp 请求。 以下是使用OkHttp框架创建Java REST客户端的源代码。

public static final MediaType JSON
    = MediaType.parse("application/json; charset=utf-8");

OkHttpClient obj = new OkHttpClient();

String post(String domain, String call) throws IOException {
    RequestBody req_body = RequestBody.create(JSON, call);
    Request quest = new Requests.Builder()
        .url(domain)
        .post(req_body)
        .build();
    Response resp = obj.newCall(quest).execute();
    return resp.req_body().string();
}

总结

我们已经以详细而简单的方式解释了如何创建 Java REST 客户端。 读完本文后,读者可以使用 Spring Boot 和 OkHttp 等一些流行的框架来制作 Java REST 客户端。

上一篇:使用 Java 创建 HTTPS 服务器

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

使用 Java 创建 HTTPS 服务器

发布时间:2023/08/10 浏览次数:126 分类:Java

本文介绍如何使用 Java 创建简单的 HTTPS 服务器。使用 Java 创建 HTTPS 服务器 在用JAVA创建HTTPS服务器之前,我们必须确保已经生成了服务器将使用的Keystore和Truststore。

Java 中的 AES 256

发布时间:2023/08/10 浏览次数:83 分类:Java

AES 256 是一种加密和解密算法。 本教程演示如何在 Java 中实现 AES 256 来加密和解密数据。Java 中的 AES 256 AES 是一种对称加密算法,易于在软件、硬件和受限环境中实现。

在JDBC中建立连接池

发布时间:2023/08/10 浏览次数:55 分类:Java

JDBC 是 Sun Microsystems 的一项规范,它为 Java 应用程序提供 API 以执行不同的操作,例如对各种数据库进行读取和写入。 JDBC提供了一种数据库连接标准的语言,您可以编写数据库访问所需的程序。

Java 绘画组件

发布时间:2023/08/10 浏览次数:105 分类:Java

首先,我们将回顾一下 Java PaintComponent() 方法的工作原理。 它什么时候调用,它的子系统和类的结构是什么?最后,我们将向您展示如何使用此方法在屏幕上绘制图形。 继续阅读以了解更多信

在 Java 中使用 SwingUtilities.invokeLater()

发布时间:2023/08/10 浏览次数:101 分类:Java

SwingUtilities.invokeLater() 方法在 Abstract Window Toolkit (AWT) 事件调度线程上执行可运行对象。 我们这样做是因为 Swing 数据结构不是线程安全的。线程安全意味着它可以从多个线程并行使用而不会导致

Java 尾部调用优化

发布时间:2023/08/10 浏览次数:170 分类:Java

本文讨论尾部调用优化(也称为 TCO)及其在 Java 中不存在的原因。 我们还将看到一些其他可以用来在 Java 中模拟 TCO 的方法。什么是尾调用优化

Java远程调试

发布时间:2023/08/10 浏览次数:123 分类:Java

我们必须执行具有特定参数的 Java 应用程序,以允许远程调试器附加。 我们将探索如何设置运行/调试配置来完成我们的工作。先决条件 要遵循本教程,我们必须启动并运行以下内容。

使用 Java 删除文件夹

发布时间:2023/08/09 浏览次数:76 分类:Java

在本文中,我们将学习如何使用 Java 编程语言删除文件夹/目录。 有多种方法可以做到这一点。 让我们一一看看。使用Java的File类的delete()删除空文件夹

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便