Questions tagged «jax-rs»

JAX-RS:RESTful Web服务的Java API。它是一个API,在根据REST体系结构样式创建Web服务时提供支持。

2
使用JAX-RS和Jersey进行基于REST令牌的身份验证的最佳实践
我正在寻找一种在Jersey中启用基于令牌的身份验证的方法。我正在尝试不使用任何特定的框架。那可能吗? 我的计划是:用户注册我的Web服务,我的Web服务生成令牌,并将其发送给客户端,客户端将保留它。然后,对于每个请求,客户端将发送令牌,而不是用户名和密码。 我正在考虑为每个请求使用自定义过滤器, @PreAuthorize("hasRole('ROLE')") 但是我只是认为这会导致对数据库的大量请求检查令牌是否有效。 还是不创建过滤器,并在每个请求中放置一个参数令牌?这样每个API都会先检查令牌,然后再执行一些操作来检索资源。

13
何时使用@QueryParam和@PathParam
我不是在问这里已经问过的问题: @PathParam和@QueryParam有什么区别 这是一个“最佳做法”或约定俗成的问题。 当你使用@PathParamVS @QueryParam。 我能想到的决定可能是使用两者来区分信息模式。让我在下面说明我的LTPO-不够完美。 可以为信息类别保留PathParam的使用,它很好地属于信息树的一个分支。PathParam可用于向下钻取实体类层次结构。 而QueryParam可以保留用于指定属性以定位类的实例。 例如, /Vehicle/Car?registration=123 /House/Colonial?region=newengland /category?instance @GET @Path("/employee/{dept}") Patient getEmployee(@PathParam("dept")Long dept, @QueryParam("id")Long id) ; 与 /category/instance @GET @Path("/employee/{dept}/{id}") Patient getEmployee(@PathParam("dept")Long dept, @PathParam("id")Long id) ; 与 ?category+instance @GET @Path("/employee") Patient getEmployee(@QueryParam("dept")Long dept, @QueryParam("id")Long id) ; 我认为这样做没有标准惯例。在那儿?但是,我想听听人们如何使用PathParam和QueryParam来区分他们的信息,就像我上面举例说明的那样。我也很想听听这种做法背后的原因。
276 java  rest  jax-rs 

4
REST响应代码以获取无效数据
在以下情况下,应将什么响应代码传递给客户端? 用户注册时传递的数据无效,例如电子邮件格式错误 用户名/电子邮件已经存在 我选择了403。我还发现我觉得可以使用。 维基百科: 412先决条件失败:服务器不满足请求者提出的先决条件之一 如果我不使用403,建议输入代码。
272 http  rest  jax-rs 

14
JAX-RS —如何一起返回JSON和HTTP状态代码?
我正在编写REST Web应用程序(NetBeans 6.9,JAX-RS,TopLink Essentials),并尝试返回JSON 和 HTTP状态代码。我已经准备好工作的代码,当从客户端调用HTTP GET方法时,该代码返回JSON。本质上: @Path("get/id") @GET @Produces("application/json") public M_機械 getMachineToUpdate(@PathParam("id") String id) { // some code to return JSON ... return myJson; } 但是,我也想用JSON数据一起返回的HTTP状态代码(500,200,204,等)。 我尝试使用HttpServletResponse: response.sendError("error message", 500); 但这使浏览器认为它是“真实的” 500,因此输出网页是常规的HTTP 500错误页面。 我想返回一个HTTP状态代码,以便我的客户端JavaScript可以处理一些依赖于它的逻辑(例如,在HTML页面上显示错误代码和消息)。这可能吗,或者不应该将HTTP状态代码用于这种情况?

11
JAX-RS / Jersey如何自定义错误处理?
我正在使用Jersey来学习JAX-RS(又名JSR-311)。我已经成功创建了一个根资源,并且正在使用参数: @Path("/hello") public class HelloWorldResource { @GET @Produces("text/html") public String get( @QueryParam("name") String name, @QueryParam("birthDate") Date birthDate) { // Return a greeting with the name and age } } 这很好用,并且可以处理Date(String)构造函数可以理解的当前语言环境中的任何格式(例如YYYY / mm / dd和mm / dd / YYYY)。但是,如果提供的值无效或无法理解,则会收到404响应。 例如: GET /hello?name=Mark&birthDate=X 404 Not Found 如何自定义此行为?也许是不同的响应代码(可能是“ 400 Bad Request”)?记录错误该怎么办?也许在自定义标题中添加问题描述(“错误日期格式”)以帮助进行故障排除?还是返回带有详细信息的完整错误响应以及5xx状态代码?

3
URL矩阵参数与查询参数
我想知道是在URL中使用矩阵还是查询参数。我发现对该主题的较早讨论并不令人满意。 例子 带有查询参数的URL:http://some.where/thing?paramA = 1&paramB = 6542 带有矩阵参数的URL:http://some.where/thing; paramA = 1; paramB = 6542 乍看之下,矩阵参数似乎只有优点: 更具可读性 不需要对XML文档中的“&”进行编码和解码 带有“?”的网址 在许多情况下不会被缓存;具有矩阵参数的URL被缓存 矩阵参数可以出现在路径的任何地方,并且不限于其结尾 矩阵参数可以具有多个值: paramA=val1,val2 但是也有缺点: 只有少数框架(如JAX-RS)支持矩阵参数 当浏览器通过GET提交表单时,这些参数成为查询参数。因此,对于同一任务,它以两种参数结束。为了不混淆REST服务的用户并限制服务开发人员的工作量,在此区域中使用始终查询参数会更容易。 由于服务的开发人员可以选择支持矩阵参数的框架,因此唯一的缺点是浏览器默认会创建查询参数。 还有其他缺点吗?你会怎么做?
178 http  url  rest  parameters  jax-rs 

14
Java 8 LocalDate Jackson格式
对于java.util.Date当我做 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy") private Date dateOfBirth; 然后在发送JSON请求时 { {"dateOfBirth":"01/01/2000"} } 有用。 我应如何针对Java 8的LocalDate字段执行此操作? 我尝试过 @JsonDeserialize(using = LocalDateDeserializer.class) @JsonSerialize(using = LocalDateSerializer.class) private LocalDate dateOfBirth; 没用 有人可以让我知道这样做的正确方法是.. 以下是依赖项 <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>jaxrs-api</artifactId> <version>3.0.9.Final</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> <version>2.4.2</version> </dependency> <dependency> <groupId>com.wordnik</groupId> <artifactId>swagger-annotations</artifactId> <version>1.3.10</version> </dependency>
138 java  json  jackson  jax-rs  resteasy 

4
JAX-RS和Spring Rest之间的区别
我对JAX-RS(由于JAX-RS只是规格)也许应该使用Jersey进行比较)与Spring for Restful服务之间的区别感到困惑。我试图在网上搜索更多信息,但变得更加混乱。我公司正在使用Spring MVC开发Restful API 令人困惑的部分是,JAX-RS代表用于RESTful Web服务的Java API,在春季,我还使用Java来开发RESTful Web服务,因此我实际上并没有区别。Spring是否遵循JAX-RS规范? 从我所知道的到现在: JAX-RS是一个蓝图/规范,它具有Jersey,RESTeasy等实现。

12
无法从START_OBJECT令牌中反序列化java.util.ArrayList的实例
我正在尝试发布List自定义对象。我在请求正文中的JSON是这样的: { "collection": [ { "name": "Test order1", "detail": "ahk ks" }, { "name": "Test order2", "detail": "Fisteku" } ] } 处理请求的服务器端代码: import java.util.Collection; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @Path(value = "/rest/corder") public class COrderRestService { @POST @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public Response postOrder(Collection<COrder> orders) …

1
如何在RESTful POST方法中访问参数
我的POST方法看起来像这样: @POST @Consumes({"application/json"}) @Path("create/") public void create(String param1, String param2){ System.out.println("param1 = " + param1); System.out.println("param2 = " + param2); } 当我在Netbeans中创建Jersey客户时,调用post方法的方法如下所示: public void create(Object requestEntity){ webResource.path("create").type(MediaType.APPLICATION_JSON).post(requestEntity); } 运行此测试时: @Test public void hello(){ String json = "{param1=\"hello\",param2=\"hello2\"}"; this.client.create(json); } 它在服务器中提供以下输出: INFO: param1 = {param1="hello",param2="hello2"} INFO: param2 = 我需要更改什么才能使参数给出正确的值?

10
使用JERSEY输入和输出二进制流?
我正在使用Jersey来实现一个RESTful API,该API主要是检索和提供JSON编码的数据。但是在某些情况下,我需要完成以下任务: 导出可下载的文档,例如PDF,XLS,ZIP或其他二进制文件。 检索多部分数据,例如一些JSON以及上载的XLS文件 我有一个基于页面的基于JQuery的Web客户端,该客户端创建对此Web服务的AJAX调用。目前,它不执行表单提交,而是使用GET和POST(带有JSON对象)。我应该利用表单发布来发送数据和附加的二进制文件,还是可以使用JSON和二进制文件创建多部分请求? 我的应用程序的服务层当前在生成PDF文件时会创建一个ByteArrayOutputStream。通过Jersey向客户输出此流的最佳方法是什么?我已经创建了一个MessageBodyWriter,但是我不知道如何从Jersey资源中使用它。那是正确的方法吗? 我一直在浏览Jersey附带的示例,但还没有发现任何说明如何执行这些操作的示例。如果有关系,我将Jackson与Jackson一起使用Jersey来执行Object-> JSON,而无需执行XML步骤,并且实际上并没有利用JAX-RS。
111 java  jersey  jax-rs 

3
JAX-RS中的提供者是什么意思?
谁能向我解释什么是JAX-RS提供程序,什么是'@Provider'注释?我一直在阅读文档,但无法理解。 如果存在为传入请求提供服务的资源类,提供者将做什么?当我创建一个持久性资源类(不是每个请求一个)时,它们与单例资源类有何不同?还是那些课程也是提供者?
110 java  jersey  jax-rs 


5
Jersey和jax-rs有什么区别
我真的不明白什么是球衣。 我所知道的是Jax-RS是用于构建REST Web服务和jersey的API?我得到了一些信息,所有人都说相同:“球衣是Jax-RS的实现”。但这意味着什么? 如果jax-rs是API,为什么我们需要jersey来创建rest Web服务?球衣是否是针对Jax-rs的更多解放?如果是,jax-rs是不完整的API?
94 java  jersey  jax-rs 

5
JAX-RS和JAX-WS有什么区别?
在阅读了有关JAX-RS和JAX-WS的几篇文章之后,我有几个要确认的问题? JAX-RS可以像JAX-WS一样执行异步请求吗? JAX-RS是否可以访问未在Java平台上运行的Web服务,反之亦然? “ REST对于PDA和移动电话等受限配置的设备特别有用”是什么意思? “ JAX-RS不需要XML消息或WSDL服务–API定义是什么意思?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.