我正在使用Jersey实现的JAX-RS规范来开发RESTful Web服务。有一个可以唯一标识资源的URL。有没有办法让我们知道RESTful服务的用户,可以对资源执行哪些操作?例如,
资源名称 - host1
http://localhost:8080/state-fetcher/rest/object/host1/actions
这应该给我可以对资源执行的所有可能操作 - {actions:[GET,POST,DELETE]}
谢谢!
答案 0 :(得分:0)
在资源上使用OPTIONS
HTTP方法。您将在Allow
标头中获取允许的方法,例如:Allow: GET, HEAD, PUT
,在有效负载中,您将找到与指定资源相关联的wadl片段。
答案 1 :(得分:0)
RESTful服务本身意味着自我描述!如果用户执行请求,则REST服务应发回可能的链接列表,这些链接可以与响应一起执行。这是RESTful服务的动机和一般概念。如果您提供图形WebClient,则只需提供初始链接(例如http:\ example.com \ restful),响应将返回一个有效链接列表,这些链接只需要在GUI中可视化。通常,Web服务仅提供可根据用户角色访问的那些链接。 (这不是安全功能!!!它只是防止显示不必要的链接)否则HTTP协议的OPTION方法提供有关支持的协议方法的信息。