Java 如果 none 路径匹配,REST 是否有办法默认为特定方法? (而不是得到 405)
Java REST is there a way to default to a particular method if none of the paths match? (Instead of getting a 405)
如果我的某些术语不正确,我深表歉意,我仍在努力学习:
我正在使用 Dropwizard 框架,并且我有一个资源 class 以及我所有的各种 POST/GET/etc 方法。当来自 Postman、浏览器等时,它们都工作正常。如果我尝试在资源 class 中没有匹配路径的东西,我会得到一个 HTTP 状态 405 的异常 - 方法不允许。
有没有一种方法可以默认为我可以显示故障排除帮助的其他方法 -- 例如可用 API 的列表或某些文档的 link?有点像 try catch 类型的逻辑。不确定选项是什么,或者是否有最佳方法。
感谢任何帮助。谢谢!
我认为您可能不想这样做。 HTTP 上的 REST "mostly" 由 HTTP 方法驱动,端点将作用于它。
在任何堆栈中,尽量避免这种情况,因为您对特定资源有特定操作...任何其他内容都应被视为服务器不理解的内容,就像 HTTP 协议的行为方式一样。
话虽如此,只需将通配符应用到其中一个方法,通常 *
作为后备操作。这应该适用于 Jersey 和 Spring Boot (MVC)。
如果我的某些术语不正确,我深表歉意,我仍在努力学习:
我正在使用 Dropwizard 框架,并且我有一个资源 class 以及我所有的各种 POST/GET/etc 方法。当来自 Postman、浏览器等时,它们都工作正常。如果我尝试在资源 class 中没有匹配路径的东西,我会得到一个 HTTP 状态 405 的异常 - 方法不允许。
有没有一种方法可以默认为我可以显示故障排除帮助的其他方法 -- 例如可用 API 的列表或某些文档的 link?有点像 try catch 类型的逻辑。不确定选项是什么,或者是否有最佳方法。
感谢任何帮助。谢谢!
我认为您可能不想这样做。 HTTP 上的 REST "mostly" 由 HTTP 方法驱动,端点将作用于它。
在任何堆栈中,尽量避免这种情况,因为您对特定资源有特定操作...任何其他内容都应被视为服务器不理解的内容,就像 HTTP 协议的行为方式一样。
话虽如此,只需将通配符应用到其中一个方法,通常 *
作为后备操作。这应该适用于 Jersey 和 Spring Boot (MVC)。