Java Restful

对于两个系统之间交互信息,有两种常见的方式:webservice和restful。

webservice简单理解就是一个系统开放出一个接口供别人调用,它注重的是方法的调用。
restful简单理解是通过抽象出网络资源,通过http来调用,它注重的是网络资源的抽象。

今天看一下个restful的实现框架,以一个例子来看看。

[b]1. 下载jersey jar包;[/b]

[b]2. 在ecplise中创建一个web工程;[/b]

[b]3. 写一个类,如下:[/b]

  @Path("/hello")
public class HelloResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayHello() {
return "Hello World!";
}

@GET
@Path("/{param}")
@Produces(MediaType.TEXT_XML)
public String sayHelloToUTF8(@PathParam("param") String username) {
return "<userName>"+username+"</userName>";
}
}


[b]4. 添加web.xml的内容[/b]
 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>RESTfulWS</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.waylau.rest.resources</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>


[b]5.测试[/b]
在浏览器中输入[url]localhost:8089/RESTfulWS/rest/hello/Suger[/url]
### Java RESTful Web Services教程与最佳实践 #### 创建RESTful服务的基础结构 构建Java中的RESTful Web Service通常依赖于JAX-RS标准。Jersey作为JAX-RS的参考实现之一,在创建这些服务方面非常流行[^1]。 为了启动并运行一个简单的RESTful应用程序,开发者可以选择使用Maven来管理项目依赖项。通过定义`pom.xml`文件内的必要库版本号和其他配置细节,可以简化开发流程。对于RESTful API而言,除了核心框架外,还可能涉及到Jackson这样的JSON处理器用于对象序列化/反序列化操作[^2]。 ```xml <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet-core</artifactId> <!-- Use the latest version --> </dependency> <!-- Jackson for JSON processing --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <!-- Specify appropriate version here --> </dependency> ``` #### 设计资源类 在设计API端点时遵循REST原则非常重要。这意味着应该围绕名词而不是动词来构思URL路径;HTTP方法(GET、POST、PUT、DELETE等)则用来表示动作。例如: - `GET /users`: 获取所有用户的列表。 - `POST /users`: 添加新用户记录。 - `GET /users/{id}`: 查询特定ID对应的单个用户详情。 - `PUT /users/{id}`: 更新指定用户的资料。 - `DELETE /users/{id}`: 移除某个具体编号下的账户数据。 每种请求类型都映射到相应的业务逻辑处理函数上,并返回适当的状态码给客户端告知其执行结果如何。 #### 实现响应体格式控制 当发送JSON格式的数据至前端应用时,可以通过调整输出方式使得调试更加便捷有效。虽然紧凑形式能够减少传输量但在排查问题期间采用缩进版会更有利于阅读理解。因此建议平时测试阶段保留良好的可读性设置,仅在网络性能成为瓶颈的情况下考虑压缩传送。 ```java @Produces(MediaType.APPLICATION_JSON) public Response getEntity() { Entity entity = new Entity(); // For production or performance critical scenarios use Context.JSON instead of IndentedJSON. return Response.ok(entity).build(); } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值