RESTful风格的开发方式

概述:      

       REST--表现层状态转换,资源在网络中以某种表现形式进行状态的转移。其是一种设计API接口规则,因而具有简单易读、易用的特点,在web项目中非常受欢迎。在设计接口时,如果满足rest约束条件和原则的应用程序或设计就称其为RESTful应用。简单来说就是基于REST理念的一套开发风格,是一种具体的开发规则

RESTful风格接口设计思考点:

  • 请求路径---由当前接口操作的资源决定,使用资源复数作为路径,比如:/employees;

  • 请求方式---根据接口对资源操作决定。 增 POST 删 DELETE 改 PUT 查 GET;

  • 请求参数---根据接口实现功能按需传入参数;

  • 请求响应---由需求/公司规定决定,一般建议响应数据格式时json格式;

RESTful常见框架 :SpringMVC、jersey、play

API测试工具 :Postman、Insomnia

常用注解:

1. 路径参数注解(Path Parameter Annotations)

      @PathVariable
      用途:用于将方法参数绑定到URL路径中的路径参数。它可以帮助我们提取URL中的动态部分并将其作为方法的参数进行处理。
      参数:
      value:(可选)指定路径参数的名称,用于与URL路径中的变量进行匹配。如果名称相同,则会将路径参数的值绑定到对应的方法参数上。示例:@PathVariable(“id”) Long id,其中"id"为路径参数的名称,将其值绑定到Long id参数上。
       required:(可选):指定路径参数是否为必需的。默认情况下,@PathVariable 注解的路径参数是必需的,即必须在URL路径中提供该参数。如果设置为 false,则可以在路径中省略该参数,但在方法中将接收到 null 值。示例:@PathVariable(value = “id”, required = false) Long id。

2. 请求参数注解(Request Parameter Annotations)
       @RequestParam
        用途:用于将方法参数绑定到URL查询参数或表单参数。它可以帮助我们获取HTTP请求中的参数值并将其作为方法的参数进行处理。
参数:
       value:(可选)指定参数的名称,用于与URL查询参数或表单参数进行匹配。如果名称相同,则会将参数的值绑定到对应的方法参数上。示例:@RequestParam(“name”) String name,其中 “name” 为参数的名称,将其值绑定到 String name 参数上。
      required:(可选)指定参数是否为必需的。默认情况下,@RequestParam 注解的参数是必需的,即必须在请求中提供该参数。如果设置为 false,则可以在请求中省略该参数,但在方法中将接收到 null 值。示例:@RequestParam(value = “name”, required = false) String name。
defaultValue:(可选)指定请求参数的默认值。当请求中未提供该参数时,将使用默认值作为方法参数的值。

  URL中可能存在查询参数,例如 “/users?name=John”,通过 @RequestParam(“name”),我们将查询参数 “name” 的值绑定到方法参数 String name 上,从而可以在方法中使用该值。

请注意,@RequestParam 注解可以用于处理查询参数或表单参数。如果请求是通过表单提交的,则会自动从表单中获取对应的参数值。

3.获取请求头

      @RequestHeader 
      用途:用于将方法参数绑定到 HTTP 请求的头部信息。它可以帮助我们获取特定的头部信息,并将其作为方法的参数进行处理。
参数:
      value:(可选)指定头部信息的名称,用于与请求的头部信息进行匹配。如果名称相同,则会将对应的头部信息的值绑定到方法参数上。示例:@RequestHeader(“Authorization”) String token,其中 “Authorization” 是头部信息的名称,将其值绑定到 String token 参数上。
      required:(可选)指定头部信息是否为必需的。默认情况下,@RequestHeader 注解的头部信息是必需的,即必须在请求中提供该头部信息。如果设置为 false,则可以在请求中省略该头部信息,但在方法中将接收到 null 值。
     使用 @RequestHeader(“Authorization”) 来获取 HTTP 请求头部中的 “Authorization” 信息,并将其绑定到方法参数 String token 上,从而可以在方法中使用该头部信息进行用户认证等操作。

 4.获取cookie值

      @CookieValue
       用途:用于将方法参数绑定到 HTTP 请求的 Cookie 值。它可以帮助我们获取特定的 Cookie 值,并将其作为方法的参数进行处理。
参数:
       value:(可选)指定 Cookie 的名称,用于与请求的 Cookie 进行匹配。如果名称相同,则会将对应的 Cookie 值绑定到方法参数上。示例:@CookieValue(“sessionId”) String sessionId,其中 “sessionId” 是 Cookie 的名称,将其值绑定到 String sessionId 参数上。
      required:(可选)指定 Cookie 是否为必需的。默认情况下,@CookieValue 注解的 Cookie 是必需的,即必须在请求中提供该 Cookie。如果设置为 false,则可以在请求中省略该 Cookie,但在方法中将接收到 null 值。

      使用 @CookieValue(“sessionId”) 来获取 HTTP 请求中的名为 “sessionId” 的 Cookie 值,并将其绑定到方法参数 String sessionId 上,从而可以在方法中使用该值进行用户认证等操作。

   5. 请求体注解(Request Body Annotations)
    @RequestBody
用途:用于将 HTTP 请求的主体部分绑定到方法参数上。主要用于接收并处理请求的 JSON、XML 等格式的数据。
参数:
required:(可选)指定请求主体是否为必需的。默认情况下,@RequestBody 注解的请求主体是必需的,即必须在请求中提供主体数据。如果设置为 false,则可以在请求中省略主体数据,但在方法中将接收到 null 值。

      我们使用 @RequestBody 注解将 HTTP 请求的主体部分绑定到 User 对象的参数上。Spring Boot 将自动解析请求主体中的数据,并将其转换为 User 对象,然后将其作为参数传递给方法进行处理。

    6. 路由参数注解(Routing Parameter Annotations)
     @RequestAttribute
     用途:用于将方法参数绑定到 HTTP 请求的属性(Attribute)上。它可以帮助我们获取特定的请求属性值,并将其作为方法的参数进行处理。
参数:
     value:(可选)指定请求属性的名称,用于与请求的属性进行匹配。如果名称相同,则会将对应的属性值绑定到方法参数上。示例:@RequestAttribute(“userId”) Long userId,其中 “userId” 是请求属性的名称,将其值绑定到 Long userId 参数上。
    required:(可选)指定请求属性是否为必需的。默认情况下,@RequestAttribute 注解的请求属性是必需的,即必须在请求中包含该属性。如果设置为 false,则可以在请求中省略该属性,但在方法中将接收到 null 值。

      使用 @RequestAttribute(“userId”) 来获取 HTTP 请求中名为 “userId” 的请求属性值,并将其绑定到方法参数 Long userId 上,从而可以在方法中使用该值进行相应的处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值