java - 将 Rest Web 服务仅包含一个参数

标签 java web-services rest jersey put

我正在使用 Java 和 Jersey 作为我的 REST Web 服务。我想要一种只接受一个整数值的 put 方法。然后,我可以根据这个整数值使用业务逻辑来更新我的数据库。通常我会传递一个自定义DTO来 self 的 PUT,因为它们通常包含不止一条信息。仅为一个值创建自定义 DTO 似乎有点浪费。是否可以将此变量作为带有 PUT 的 @PathParam 传递

我已经尝试过

@PUT
@Path("apple/{pearId}")
public void doStuff(@PathParam("pearId") Integer pearId) {...}

但是如果我传入,这不起作用

http://myurl/apple/123

我尝试使用 REST 客户端来 PUT ,但最终得到 HTTP Status 403

我可以将变量作为 PUT @PathParam 传递吗?

谢谢

更新:有关错误的更多详细信息

错误来自 REST 客户端

HTTP Status 403 -
type Status report
message
   descriptionAccess to the specified resource () has been forbidden

我现在将添加日志记录以查看我是否真正进入该方法

最佳答案

您绝对可以将 @PathParam 与 PUT 一起使用。 HTTP 403 意味着 Forbidden 。此错误可能不是来自 Jersey 。这个错误是从哪里来的?您的代码会抛出该错误吗?

关于java - 将 Rest Web 服务仅包含一个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13710851/

相关文章:

rest - 模拟HTTP上的过程调用的最佳/最RESTful方法是什么?

rest - 在 Play 中返回 RESTful 响应代码

javac 编译器差异

java - 将@RequestBody从node js发送到Spring Boot Rest API

c# - 在 WCF 中的域层和服务层之间传输用户类型 - 建议的方法?

android - 作为 Web 服务的 SIP API

Java:如何减少无法合并的 if-else 语句的数量

java - Jersey 远程 IP 地址无法正常工作

java - tomcat 7.0.56 windows (eclipse) 尾部附加斜杠; tomcat 7.0.28 linux(已部署的 war )未附加尾部斜杠

c# - RESTful WCF 服务在发送 "raw"XML 时返回 400 代码