• RESTful API ,以及如何使用它构建 web 应用程序


    关于REST

    这是一种软件架构风格,是英文(Representational State Transfer)的缩写,翻译为表现层状态转换,是由Roy Thomas Fielding博士创建的,在他的博士论文中提出的。这个架构并没有创造新技术、组件或者服务,不是一种标准,主要是一种架构的约束条件和原则,是一种软件架构的风格,一种设计风格。目的就是为了在符合架构原理前提下,能够理解和评估在网络基础上的应用软件的架构设计,得到功能强、性能好、适宜通信的架构。(作者文章中所表达)就是说符合这个风格的架构都叫做restful,遵循rest架构风格的应用编程接口estful web的应用服务进行交互,就称为restfulapi。

    REST是设计风格而不是标准。REST通常基于使用HTTPURI,和XML以及HTML这些现有的广泛流行的协议和标准。

    • 资源是由URI来指定。

    • 对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。

    • 通过操作资源的表现形式来操作资源。

    • 资源的表现形式则是XML或者HTML,取决于读者是机器还是人,是消费web服务的客户软件还是web浏览器。当然也可以是任何其他的格式。

    REST六个指导原则

    1. 定义资源:确定所需资源的名称、属性及其关系。

    2. 设计API:基于HTTP方法和URL,设计API接口来对这些资源进行创建、读取、更新和删除等操作。

    3. 实现API:根据API设计规范来实现API接口,可以使用任何服务器端编程语言。

    4. 测试API:使用各种客户端工具或者编写自动化测试来验证API的正确性和可靠性。

    5. 文档API:编写API文档,包括API的使用说明、参数、返回值等细节。

    6. 发布API:将API部署到服务器上,并公开给客户端应用程序使用。

    RESTful API

    RESTful API是一种基于HTTP协议的Web应用程序编程接口,它提供了一组标准的URL、HTTP请求方法、HTTP响应码和MIME类型等,以实现客户端与服务器端之间的数据交互和资源访问。

    RESTful API是 REST 的一种实现,因此要要遵循其6个原则

    ESTful API构建Web应用程序优点

    1. 独立性:由于RESTful API使用HTTP协议,因此客户端和服务器之间没有任何依赖关系。

    2. 可扩展性:定义良好的API可以增加新的资源和功能,而不需要更改现有的API接口。

    3. 易于维护:API遵循标准HTTP方法和状态码,使其易于维护、调试和测试。

    4. 可重用性:API接口可以重复使用,使其易于构建新的客户端应用程序。

    5. 安全性:RESTful API使用标准的HTTP身份验证和授权机制,可以确保API的安全性。

    实现

    Spring MVC框架实现Restful API

    1.创建一个Spring MVC项目

    2.定义一个Controller类,该类用于处理Restful API请求。

    3.在Controller类中定义方法,用于处理HTTP请求,并返回JSON格式的数据。

    4.配置Spring MVC框架,让它知道哪些类是Controller类,并将请求映射到相应的方法。

    5.编写测试用例,测试API接口的功能和正确性。

    以下是一个简单的例子:

    1.创建一个Spring MVC项目,并导入Spring MVC依赖库。

    2.在Controller类中定义一个方法,用于处理HTTP GET请求,并返回一个JSON格式的数据。

    1. @RestController
    2. @RequestMapping("/api")
    3. public class MyController {
    4. @GetMapping("/users")
    5. public List getUsers() {
    6. List userList = new ArrayList<>();
    7. User user1 = new User("Tom", 18);
    8. User user2 = new User("Jerry", 20);
    9. userList.add(user1);
    10. userList.add(user2);
    11. return userList;
    12. }
    13. }

    3.配置Spring MVC框架,让它知道哪些类是Controller类,并将请求映射到相应的方法。

    1. package="com.example.controller"/>
    2. "contentNegotiationManager"/>
    3. "contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
    4. "favorPathExtension" value="false"/>
    5. "favorParameter" value="true"/>
    6. "parameterName" value="mediaType"/>
    7. "defaultContentType" value="application/json"/>
    8. "mediaTypes">
    9. "xml" value="application/xml"/>
    10. "json" value="application/json"/>

    4.编写测试用例,测试API接口的功能和正确性。

    1. @Test
    2. public void testGetUsers() throws Exception {
    3. mvc.perform(MockMvcRequestBuilders.get("/api/users").accept(MediaType.APPLICATION_JSON))
    4. .andExpect(MockMvcResultMatchers.status().isOk())
    5. .andExpect(MockMvcResultMatchers.content().contentType(MediaType.APPLICATION_JSON_UTF8))
    6. .andExpect(MockMvcResultMatchers.jsonPath("$[0].name").value("Tom"))
    7. .andExpect(MockMvcResultMatchers.jsonPath("$[1].name").value("Jerry"));
    8. }

    用springboot实现一个简单的Restful API

    1. @RestController
    2. public class HelloWorldController {
    3. @GetMapping("/hello")
    4. public String sayHello() {
    5. return "Hello World!";
    6. }
    7. @GetMapping("/hello/{name}")
    8. public String sayHelloToName(@PathVariable("name") String name) {
    9. return "Hello " + name + "!";
    10. }
    11. @PostMapping("/hello")
    12. public String sayHelloWithPost(@RequestBody String name) {
    13. return "Hello " + name + "!";
    14. }
    15. }

    在这个示例中,使用了@RestController注解来标记这个类为一个RESTful Controller。

    三个请求处理方法分别处理了GET请求、带路径参数的GET请求和POST请求。在第一个方法中,直接返回了一个字符串“Hello World!”;在第二个方法中,使用了@PathVariable注解来获取路径参数,并返回一个包含参数的字符串;在第三个方法中,使用了@RequestBody注解来获取POST请求的请求体,并返回一个包含请求体的字符串。

    值得注意的是,此示例没有使用数据库或其他持久化层,仅仅用来演示如何构建一个简单的Spring Boot Restful API。

    如何用Java实现一个类似大众点评的Restful API接口

    要实现类似大众点评的Restful API接口,你可以按照以下步骤进行:

    1. 使用Java编写一个基于Spring框架的Web应用程序。
    2. 创建一个或多个Controller类,用于处理不同的API请求。你可以使用注释来定义不同的请求方法和参数。
    3. 对于每个请求,Controller类中的方法应该返回一个ResponseEntity对象,表示API的响应。ResponseEntity对象包含了响应的状态码、HTTP头以及响应体。
    4. 使用Spring的依赖注入机制,将服务层的业务逻辑注入到Controller中。这样,Controller就可以调用服务层的方法来处理API请求。
    5. 使用数据访问对象(DAO)来访问数据库。你可以使用Spring的JdbcTemplate或者ORM框架,例如Hibernate或MyBatis。
    6. 在Controller中,你可以使用 HttpServletRequest 对象来获取请求参数和处理身份验证等安全功能。
    7. 对于每个请求,你可以定义一个路由(route),用于将请求映射到正确的Controller方法。
    8. 最后,确保你的API具有适当的错误处理和文档。你可以使用Swagger或ApiDoc等工具来自动生成API文档。

    需要注意的是,Restful API设计还需要考虑到API版本控制、安全、身份验证、请求限制等方面。

  • 相关阅读:
    【Vue】Vue-Router 路由的理解和使用(1)
    技巧分享:图片怎么去水印?
    C语言操作符详解(二)
    R语言【base】——abs(),sqrt():杂项数学函数
    LocalDate和mysql数据库驱动版本
    Unity 下载Zip压缩文件并且解压缩
    Lyft Presto Gateway源码机制分析
    服务器部署 Vue 和 Django 项目的全记录
    【2022】CMKT: Concept Map Driven Knowledge Tracing概念图驱动的知识追踪
    集合_HashMap_tableSizeFor
  • 原文地址:https://blog.csdn.net/qq_33373609/article/details/132915106