gpt4 book ai didi

java - 具有前端和 Restful spring boot 应用程序

转载 作者:行者123 更新时间:2023-11-29 04:16:07 26 4
gpt4 key购买 nike

我正计划使用 Spring Boot 作为 restful 服务构建一个 Web 应用程序。我的 spring boot web restful 应用程序也应该可以被其他应用程序访问。如果有人从其他应用程序访问其余服务,那么我的应用程序应该按预期工作。

@Controller
public class GreetingController {
@RequestMapping("/greeting")
public String greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) {
model.addAttribute("name", name);
return "greeting";
}
}

在上面的示例中,如果调用是从应用程序外部进行的,则其余服务应返回 JSON 输出。

我们可以有一些变量来区分请求变量的一种方法。但我不想那样。请分享一些标准方法。

感谢您的帮助。

最佳答案

惯用的方式是依赖Accept 请求 header 。如果请求者提供 Accept: application/json 然后返回给他 JSON 数据(REST API)。

如果请求者向您提供Accept: application/xhtml+xml 返回他的 HTML(网络前端)。

在实现方面,您应该使用带有 consumes 参数的 @RequestMapping 来完成。你需要两种方法。如果两条路径的业务逻辑相同,则可以重用 in。业务逻辑应该驻留在另一个方法或单独的 @Service 中。业务逻辑本身不应知道、关心或依赖传输协议(protocol) (HTTP)、请求响应或表示的序列化。业务逻辑应该只与 POJO 一起工作,并将序列化留给@Controller。

@Controller
@RequestMapping("/greeting")
public class GreetingController {

@RequestMapping(consumes="application/json")
@ResponseBody //required if you want to return POJO (spring will serialize it to response body)
public void rest() {
//return POJO, it will be serialized to JSON. or serialize pojo
directly and return response with manually set body and headers.
}

@RequestMapping(consumes="application/xhtml+xml")
public void html() {
//populate model, return string pointing to HTML to View
}

}

关于java - 具有前端和 Restful spring boot 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52317888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com