编写RESTful风格的程序

了解REST

REST是一种思想。REST式的web服务是一种面向资源的架构(ROA)

资源操作:

http://example.com/users/
-GET:获取一个资源
-POST:创建一个资源
-PUT:修改一个资源的状态
-DELETE:删除一个资源

原始做法:

http://127.0.0.1/user/query/1 GET根据用户id查询用户数据
http://127.0.0.1/user/savePOST新增用户
http://127.0.0.1/user/updatePOST修改用户信息
http://127.0.0.1/user/deleteGET/POST删除用户信息

RESTful用法:

http://127.0.0.1/user/1 GET 根据用户id查询用户数据
http://127.0.0.1/user POST 新增用户
http://127.0.0.1/user PUT修改用户信息
http://127.0.0.1/user DELETE删除用户信息

响应示例

错误的做法:

{
"status":200,
"data":{"trade_id":1234,"trade_name":"bala bala"}
}

正确的做法

Response Headers:
Status:200
Response Body:
{
"trade_id":1234,"trade_name":"bala bala"
}

http响应状态码

  1. 200 操作成功
  2. 201 对象创建成功
  3. 202 请求已经被接受
  4. 204 操作执行成功, 但是没有返回数据
  5. 301 资源已经被移除
  6. 303 重定向
  7. 304 资源没有被修改
  8. 400 参数列表错误(缺少,格式不匹配)
  9. 401 未授权
  10. 403 访问受限,授权过期
  11. 404 资源,服务未找到
  12. 405 不允许的http方法
  13. 409 资源冲突,或者资源被锁定
  14. 415 不支持的数据类型
  15. 429 请求过多被限制
  16. 500 系统内部错误
  17. 501 接口未实现

使用SpringMVC实现RESTful

所涉及的注解:

  • @RequestMapping
  • @PathVariable
  • @ResponseBody
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Java 中,您可以使用 Spring Boot 框架来编写 RESTful 风格的代码,并实现透传功能。以下是一个简单的示例代码,可以填入 IP 地址和字段: 首先,确保您已经设置好了 Java 开发环境,并且已经安装了 Maven。 1. 创建一个新的 Maven 项目,并添加以下依赖项到 `pom.xml` 文件中: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> </dependencies> ``` 2. 创建一个名为 `ProxyController` 的 Java 类,并添加以下代码: ```java import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.client.RestTemplate; @RestController @RequestMapping("/api") public class ProxyController { private final RestTemplate restTemplate = new RestTemplate(); @RequestMapping(value = "/{path}", method = {RequestMethod.GET, RequestMethod.POST, RequestMethod.PUT, RequestMethod.DELETE}) public ResponseEntity<?> proxyRequest(@PathVariable String path, @RequestBody(required = false) Object body, HttpMethod method) { String targetUrl = "http://IP_ADDRESS/" + path; // 填入目标 IP 地址 HttpEntity<?> httpEntity = new HttpEntity<>(body); ResponseEntity<?> response = restTemplate.exchange(targetUrl, method, httpEntity, String.class); return ResponseEntity.status(response.getStatusCode()).body(response.getBody()); } } ``` 请将代码中的 `'IP_ADDRESS'` 替换为您要透传请求的目标服务器的 IP 地址。 3. 创建一个名为 `Application` 的 Java 类,并添加以下代码: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 4. 运行 `Application` 类的 `main` 方法,启动 Spring Boot 应用程序。 现在,您已经实现了一个基于 Spring Boot 的 RESTful 透传代理。它将根据请求方法和数据构建透传请求,并使用 `RestTemplate` 发起该透传请求。最后,将透传请求的响应作为 JSON 格式返回给客户端。 您可以根据需要自定义 URL 路由、请求方法和透传数据的处理逻辑。请注意,此代码仅为示例,实际应用中可能需要进行错误处理、身份验证等其他操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值