如何识别Web服务是REST还是SOAP?
How to identify whether web service is REST or SOAP?
我正在学习 spring MVC 并编写了以下代码。我阅读了一些关于 SOAP 和 REST 的文章,但在我编写的初级控制器代码中,我无法区分使用的是 SOAP 还是 REST。我的控制器代码如下:
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 控制器。
在你的情况下,你的 returning "hello" 字符串在控制器方法的末尾,它反过来将 translated/mapped 到页面(hello.jsp 或 hello.html 基于在配置上)和 returns 相同。所以,最后,您得到的是以漂亮的方式呈现的页面,并应用了所有必要的样式和脚本。
相比之下,REST 和 SOAP 不是这样工作的。它的主要目的是单独传输数据(但你也可以发送HTML页面)
编写 REST 服务与您目前所拥有的几乎相似,并且相当容易。如果您使用 Springboot,那么您所要做的就是直接将 @Controller
注释替换为 @RestController
和 return Customer 对象。在 REST 控制器中,您不会有 HttpServletRequest
& Model
参数。
但是编写 SOAP 服务是另一个看起来可能完全不同的主题。
网络上散布着大量示例和教程,您可以轻松找到这些主题。
参考文献:
Controller vs RestController in Spring
Difference between Controller & RestController in Spring
希望这能让你对这三个是什么有一些高层次的了解。
我正在学习 spring MVC 并编写了以下代码。我阅读了一些关于 SOAP 和 REST 的文章,但在我编写的初级控制器代码中,我无法区分使用的是 SOAP 还是 REST。我的控制器代码如下:
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 控制器。 在你的情况下,你的 returning "hello" 字符串在控制器方法的末尾,它反过来将 translated/mapped 到页面(hello.jsp 或 hello.html 基于在配置上)和 returns 相同。所以,最后,您得到的是以漂亮的方式呈现的页面,并应用了所有必要的样式和脚本。
相比之下,REST 和 SOAP 不是这样工作的。它的主要目的是单独传输数据(但你也可以发送HTML页面)
编写 REST 服务与您目前所拥有的几乎相似,并且相当容易。如果您使用 Springboot,那么您所要做的就是直接将 @Controller
注释替换为 @RestController
和 return Customer 对象。在 REST 控制器中,您不会有 HttpServletRequest
& Model
参数。
但是编写 SOAP 服务是另一个看起来可能完全不同的主题。 网络上散布着大量示例和教程,您可以轻松找到这些主题。
参考文献:
Controller vs RestController in Spring
Difference between Controller & RestController in Spring
希望这能让你对这三个是什么有一些高层次的了解。