网站建设与维护工作待遇,仿牌网站,开发工具有哪些,平湖企业网站建设本文档构建一个简单的restful webservice#xff0c; 在官网原文Getting Started | Building a RESTful Web Service (spring.io)的基础上进行操作 文章目录 一、项目创建流程1.1 创建项目1.2 创建资源表示类1.3 创建资源控制类 二、项目运行参考资料 一、项目创建流程
本文的… 本文档构建一个简单的restful webservice 在官网原文Getting Started | Building a RESTful Web Service (spring.io)的基础上进行操作 文章目录 一、项目创建流程1.1 创建项目1.2 创建资源表示类1.3 创建资源控制类 二、项目运行参考资料 一、项目创建流程
本文的目标是构建一个服务该服务将在http://localhost:8080/greeting接受HTTP GET请求
它将使用greeting的JSON表示进行响应如下所示
{id:1,content:Hello, World!}1.1 创建项目
在官网上Spring Initializr创建项目 1.2 创建资源表示类
对greeting表示进行建模创建一个资源表示类。
具体操作为id和content提供一个Java record类在/src/main/java/com/zouhu/restservice/Greeting.java添加如下代码
package com.zouhu.restservice;public record Greeting(long id, String content) {
}此应用程序使用Jackson JSON库自动将greeting类型的实例列表到JSON中。 1.3 创建资源控制类
在Spring构建RESTful Web服务的方法中HTTP请求由控制器处理。
这些组件由RestController注释标识下面代码中所示的GreetingController来自src/main/java/com/example/restservice/GreetingController.java通过返回一个greeting类的新实例来处理 /greeting的GET请求
package com.zouhu.restservice;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 GreetingController {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));}
}传统的MVC控制器和前面显示的RESTful Web服务控制器之间的一个关键区别是创建HTTP响应主体的方式。这个RESTful Web服务控制器不依赖视图技术将Greeting数据执行到HTML而是填充并返回一个Greeting对象。对象数据将作为JSON直接写入HTTP响应。
二、项目运行
运行RestserviceApplication类启动项目
访问http://localhost:8080/greeting 结果如下
{id: 1,content: Hello, World!
}访问http://localhost:8080/greeting?namezouhu 结果如下
{id: 2,content: Hello, zouhu!
}注意id属性是如何从1更改为2的。这证明您正在跨多个请求处理同一个GreetingController实例并且它的计数器字段在每次调用时都按预期递增。
参考资料
Getting Started | Building a RESTful Web Service (spring.io)