如果没有路径匹配,Java REST 有没有办法默认使用特定方法? (而不是得到 405)

标签 java rest jersey jax-rs dropwizard

如果我的某些术语不正确,我深表歉意,我仍在努力学习:

我正在使用 Dropwizard 框架,并且我有一个包含所有各种 POST/GET/etc 方法的资源类。当来自 postman 、浏览器等的攻击时,它们都工作正常。如果我尝试资源类中没有匹配路径的内容,我会收到 HTTP 状态 405 的异常 - 方法不允许。

有没有一种方法可以默认使用其他方法来显示故障排除帮助 - 例如可用 API 的列表或某些文档的链接?有点像 try catch 类型的逻辑。不确定有哪些选项,或者是否有最好的方法来做到这一点。

感谢任何帮助。谢谢!

最佳答案

我认为您可能不想这样做。 REST over HTTP“主要”由 HTTP 方法驱动,端点也会对其进行操作。

在任何堆栈中,请尽量避免这种情况,因为您对特定资源有特定操作...其他任何内容都应被视为服务器无法理解的内容,就像 HTTP 协议(protocol)的行为方式一样。

话虽如此,只需将通配符(通常是 *)应用于其中一个方法作为后备操作即可。这也应该适用于 Jersey 和 Spring Boot (MVC)。

关于如果没有路径匹配,Java REST 有没有办法默认使用特定方法? (而不是得到 405),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45623090/

相关文章:

java - 使用 DropWizard 进行 OAuth 身份验证

两个不同的 jersey REST 服务之间的 Java servlet 重定向

rest - 单个 Jersey GET 资源所需的最低限度?

java - 客户端-服务器应用程序 : can't connect to java server from android mobile phone

java - 通过 Ansible 安装 Jenkins 时发现 Java 版本不正确

java - 通过xpath获取webelement的文本

xml - 如何从客户端的 javax.ws.rs 实体获取纯 XML

java - 使用 bundle 传递多个数组

java - 带 Jersey 库的 Odoo ERP java API 客户端

java - Jersey:JSON 和 StringMessageProvider 冲突,application/json 方法生成无效的 JSON