java - 如何判断Web服务是REST还是SOAP?

标签 java rest web-services spring-mvc soap

我正在学习 Spring MVC 并编写了以下代码。我读了一些关于 SOAP 和 REST 的文章,但在我编写的初级 Controller 代码中,我无法区分使用的是 SOAP 还是 REST。我的 Controller 代码如下:


import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.model.Customer;

@Controller
public class SelectController {




    @RequestMapping("/")
    public String display(){

        System.out.println("Inside controller");
        return "demo";
    }

    @RequestMapping("/index")
    public String indexpage(HttpServletRequest req, Model m){

        String name = req.getParameter("name");
        String pass = req.getParameter("pass");

        String random = req.getParameter("abc");


        System.out.println("Index page"+name+pass+random);

        Customer cust = new Customer();

        cust.setUsername(name);
        cust.setPassword(pass);

        System.out.println("Index page"+name+pass);

        m.addAttribute("customer", cust);
        return "hello";
    }

最佳答案

您编写的 Controller 是

neither REST nor SOAP.

它是一个 MVC Controller 。 在您的情况下,您在 Controller 方法末尾返回“hello”字符串,该字符串又被翻译/映射到页面(基于配置的 hello.jsp 或 hello.html)并返回相同的内容。因此,最后,您得到的是页面以漂亮的方式呈现,并应用了所有必要的样式和脚本。

相比之下,REST 和 SOAP 则不然。它的主要目的是单独传输数据(但你也可以发送HTML页面)

编写 REST 服务几乎与您当前所拥有的类似,并且相当容易。如果您使用Springboot,那么您只需将@Controller注释替换为@RestController并直接返回Customer对象即可。在 REST Controller 中,您不会有 HttpServletRequest 和 Model 参数。

但是编写 SOAP 服务是另一个主题,可能看起来完全不同。 网络上散布着大量示例和教程,您可以轻松找到有关这些主题的示例和教程。

引用文献:

Controller vs RestController in Spring

Difference between Controller & RestController in Spring

SOAP vs REST

希望这能让您对这三个概念有一些高层次的了解。

关于java - 如何判断Web服务是REST还是SOAP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59244020/

相关文章:

asp.net-mvc - 如何从 ASP.NET MVC Web API 帖子中获取原始 JSON 字典?

java - session 超时后身份验证 token 无效

java - 如何创建接收 Gson().fromJson() 的对象

java - 如果后端是 URL,则 API 流从客户端到后端

java - Jersey GET 请求可以返回多态实体吗​​?

web-services - WS 被认为是 Restful 要求

web-services - 为什么有些 Web 服务需要客户端发送其 IP 地址?

Java 按值对 HashMap 进行排序

java - 从 PDF 中提取不可选择的内容

java - CMT 中的 PersistenceContext 似乎与 BMT 中的 PersistenceContext 不同