Index / Spring

Spring 构建 RESTful Web 服务 Hello World

原文:https://ichochy.com/posts/spring/20210615.html

使用 Spring 创建 RESTful Web 服务,实现Hello World的 RESTful 请求

什么是 RESTful

RESTful 是应用程序接口的一种架构风格,它使用 HTTP 请求来访问和使用数据。请求方式包含 GET、PUT、POST 和 DELETE 类型,这些类型是指有关资源操作的读取、更新、创建和删除。

RESTful 协议定义 HTTP 方法如下:

开发工具

创建项目

New Project

打开 IDEA 创建新项目 New Project,使用 start.spring.io 快速构建 16226365527086133

添加依赖

添加 Spring Web 依赖,finish 创建项目 16226367387048384

pom.xml 中手动管理依赖模块

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

编写项目

创建数据对象

/*
 * Copyright (c) 2021 iChochy
 * URL:https://ichochy.com
 * Date:2021/06/17 11:40:17
 */

package com.ichochy.example.restful;

public class Greeting {
    private Long id;
    private String content;

    /**
     * 用参的构造方法
     * @param id
     * @param content
     */
    public Greeting(Long id, String content) {
        this.id = id;
        this.content = content;
    }

    public Long getId() {
        return id;
    }

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

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}

创建控制器

/*
 * Copyright (c) 2021 iChochy
 * URL:https://ichochy.com
 * Date:2021/06/17 11:44:17
 */

package com.ichochy.example.restful;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.concurrent.atomic.AtomicLong;

@RestController
public class RESTFulController {

    private static final String template = "Hello, %s!";
    private final AtomicLong counter = new AtomicLong();

    @GetMapping("/greeting")
    public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
        return new Greeting(counter.incrementAndGet(), String.format(template, name));
    }
}

项目目录

├── pom.xml
└── src
    └── main
        └── java
            └── com
                └── ichochy
                    └── example
                        ├── ExampleApplication.java
                        └── restful
                            ├── Greeting.java
                            └── RESTFulController.java

运行项目

Dubug 运行项目

main 方法启动项目

/*
 * Copyright (c) 2021 iChochy
 * URL:https://ichochy.com
 * Date:2021/06/09 22:07:09
 */

package com.ichochy.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ExampleApplication {

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

服务默认端口号为8080

162314892348552510

访问测试

访问:http://localhost:8080/greeting

{"id":1,"content":"Hello, World!"}

访问:http://localhost:8080/greeting?name=iChochy

{"id":2,"content":"Hello, iChochy!"}

总结

GitHub

https://github.com/iChochy/Example

引用