Http请求 以及 Springboot注解

Http

Http中有很多请求方法 这些请求方法主要用于客户端与服务器之间的通信 前后端交互大多通过这些请求来完成

常用的请求方法

  1. GET:
    • 用途: 获取数据或资源。

    • 特点: 通过URL传递参数,主要用于数据的读取而非修改。GET请求是幂等的(多次请求不会影响服务器数据),并且通常是安全的。

    • 应用场景: 请求网页内容、查询用户信息、获取商品列表等。

    • 示例: 向服务器请求用户ID为123的信息:

      GET /users/123 HTTP/1.1
      
  2. POST:
    • 用途: 提交数据或创建资源。

    • 特点: 数据放在请求体中,而不是URL中,适合传输较大的数据或敏感信息。POST请求不是幂等的(多次请求可能会产生不同的结果,如重复创建)。

    • 应用场景: 提交表单数据、上传文件、创建新用户等。

    • 示例: 向服务器提交一个新用户的信息:

       POST /users HTTP/1.1
      Content-Type: application/json
      
      {
        "name": "Alice",
        "email": "alice@example.com"
      }
      
  3. PUT:
    • 用途: 更新整个资源或创建资源(如果资源不存在)。

    • 特点: PUT通常用于更新指定的资源。它是幂等的,多次执行同样的PUT请求不会产生副作用。

    • 应用场景: 更新用户信息、修改商品详情等。

    • 示例: 更新用户ID为123的用户信息:

      PUT /users/123 HTTP/1.1
      Content-Type: application/json
      
      {
        "name": "Bob",
        "email": "bob@example.com"
      }
      
  4. PATCH:
    • 用途: 部分更新资源。

    • 特点: 只修改资源的部分内容,而不是替换整个资源。它也是幂等的。

    • 应用场景: 修改用户的部分信息,如仅更新邮箱。

    • 示例: 更新用户ID为123的邮箱:

      PATCH /users/123 HTTP/1.1
      Content-Type: application/json
      
      {
        "email": "newemail@example.com"
      }
      
  5. DELETE:
    • 用途: 删除资源。

    • 特点: 向服务器发送删除指定资源的请求,它是幂等的。

    • 应用场景: 删除用户、删除订单等。

    • 示例: 删除用户ID为123的用户:

      DELETE /users/123 HTTP/1.1
      

不常用的请求方法

  1. HEAD:
    • 类似于GET请求,但是不返回实际内容,只返回响应头。通常用于检查资源的状态或元数据。
    • 应用场景:检查文件是否存在、获取资源的大小等。
  2. OPTIONS:
    • 用于获取服务器支持的请求方法。可以用来检查跨域资源共享(CORS)设置。
    • 应用场景:检查服务器的能力和支持的HTTP方法。
  3. TRACE:
    • 诊断目的,用于回显请求内容,帮助调试连接和代理服务器的问题。
    • 应用场景:很少直接使用,通常出于安全考虑会禁用。
  4. CONNECT:
    • 建立隧道连接,用于支持SSL加密的HTTPS连接。
    • 应用场景:主要用于代理服务器。

总结

前后端的交互主要依赖于这些请求方法,特别是GET、POST、PUT、PATCH、DELETE,它们构成了大部分Web API的基础操作。你可以根据需求选择不同的请求方法,按照RESTful的风格实现资源的增删改查。

Spring Boot

在Spring Boot中,为了方便开发,提供了专门对应不同HTTP请求的注解,这些注解简化了代码编写,并提高了代码的可读性和维护性。

以下是Spring Boot中常用的注解:

@GetMapping:

  • 对应HTTP的GET请求。通常用于获取数据或资源。

  • 用法示例:

    @GetMapping("/users")
    
    public List<User> getAllUsers() {
    
        // 处理获取所有用户的逻辑
    
        return userService.findAll();
    
    }
    

@PostMapping:

  • 对应HTTP的POST请求。用于提交数据或创建资源。

  • 用法示例:

    @PostMapping("/users")
    
    public User createUser(@RequestBody User user) {
    
        // 处理创建用户的逻辑
    
        return userService.save(user);
    
    }
    

@PutMapping:

  • 对应HTTP的PUT请求。用于更新整个资源或创建资源。

  • 用法示例:

    @PutMapping("/users/{id}")
    
    public User updateUser(@PathVariable Long id, @RequestBody User user) {
    
        // 处理更新用户的逻辑
    
        return userService.update(id, user);
    
    }
    

@PatchMapping:

  • 对应HTTP的PATCH请求。用于部分更新资源。

  • 用法示例:

    @PatchMapping("/users/{id}")
    
    public User updateUserPartially(@PathVariable Long id, @RequestBody Map<String, Object> updates) {
    
        // 处理部分更新用户的逻辑
    
        return userService.partialUpdate(id, updates);
    
    }
    

@DeleteMapping:

  • 对应HTTP的DELETE请求。用于删除资源。

  • 用法示例:

    @DeleteMapping("/users/{id}")
    
    public void deleteUser(@PathVariable Long id) {
    
        // 处理删除用户的逻辑
    
        userService.delete(id);
    
    }
    

这些注解可以让Spring Boot开发者轻松地根据HTTP请求类型映射到相应的Java方法上,从而实现RESTful风格的API接口设计。在旧版本中,通常会使用@RequestMapping注解并指定method参数来处理不同的HTTP方法,而新版本的Spring Boot则提供了更细粒度的注解,让代码更加简洁明了。


项目分区导航业务具体实现 ⬅️ | 01-Http请求 以及 Springboot注解 | ➡️ Postman