java - 如何向此 Spring Boot 代码添加新的 REST GET 操作?

标签 java spring rest spring-boot

这是一个基本问题,来自 2 小时前刚刚尝试 Spring Boot 的 Java 新手。

我按照这里的教程进行操作; http://patrickgrimard.com/2014/08/14/how-to-build-a-spring-boot-application-using-intellij-idea/

当我访问http://localhost:8080/api时,我得到以下 json 输出;

{
type: "green",
length: 10,
height: 7
}

我想修改代码,以便当我访问 http://localhost:8080/api/test 时,我将得到以下 json 输出;

{
type: "red",
length: 8,
height: 7
}

以下是我修改的 Controller 代码;

@RequestMapping("/api/**")
@RestController
public class WidgetController {

    @RequestMapping(method = RequestMethod.GET, produces = {MediaType.APPLICATION_JSON_VALUE})
    public Widget index() {
        return new Widget("green", 10, 7);
    }

    public Widget test() {
        return new Widget("red", 8, 7);
    }
}

我的代码有什么问题吗?如果这个问题看起来太简单,我深表歉意。如果提供链接,我可以学到足够的知识来回答我自己的问题,这也会很有帮助。对于新手来说,似乎有很多东西需要阅读。

我正在使用 IntelliJ idea Ultimate 试用版。

最佳答案

您需要为您的测试方法添加 @RequestMapping 注释以及所需的路径。类级别的 Controller 会将/api/* 映射到此 Controller ,但您必须为其提供有关何时调用 test() 与 index() 的更多信息。现在的情况是,任何对/api/* URL 的“GET”都会映射到 index()。

关于java - 如何向此 Spring Boot 代码添加新的 REST GET 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28228668/

相关文章:

java - 使用 spring security 时 Spring boot @Autowired 存储库实例为 null

java - 单击按钮打开拨号盘,该字符串例如 String str = "*#06#"应该在拨号盘中打开。

java - 格式化字符串输出

java - Jetty - JAAS 和 Active Directory - 仅身份验证?

c# - ASP.NET Web-API OWIN : No HTTP resource was found that matches the request URI

java - 将线程分组并为每个组设置不同的最大线程数

Spring Boot 2.0.0.M6 OAuth2 Web 应用程序客户端。不再有@EnableOauth2Sso;如何更换?

html - spring mvc资源无法访问或不工作

java - 我是否需要为具有登录系统的 Web 应用程序实现 OAuth 服务器?

REST API - 如何处理 PUT 方法中的可选参数? PATCH 方法的实现有什么不同