考虑一个名为 的大实体entity
。它公开了 100 种不同的更新操作,包括添加和删除属性、更新属性等。
使用单个 URI 和应用程序服务器路由处理的许多情况之间应该优先选择什么:
PATCH /entity/[id] {"type":"a","key1":"val1","key2":"val2"} or
{"type":"b","key3":"val3","key4":"val4"} or ...
Run Code Online (Sandbox Code Playgroud)
...并且使用许多 URI,每个应用程序服务器路由处理一种情况:
PATCH /entity/[id]/a {"key1":"val1","key2":"val2"}
PATCH /entity/[id]/b {"key3":"val3","key4":"val4"}
Run Code Online (Sandbox Code Playgroud)
或者也许使用PUT
?需要更新(非常)部分实体。
考虑到 REST 合规性、负载均衡器、缓存、KISS 等,最好的方法是什么。任何想法将不胜感激。
我想将多个参数传递给我的方法.我该怎么做呢?我希望网址看起来像这样的http:// host/one/two/three/four
到目前为止,我有以下代码
@GET
@Produces({MediaType.APPLICATION_JSON})
@Path("/{one,two,three}")
public List<Person> getPeople(@PathParam ("one") String one, @PathParam ("two") String two, @PathParam ("three") String three){
String one = one;
String two = two;
String three = three;
}
Run Code Online (Sandbox Code Playgroud)
这是抓住params并将其传递给我的方法的正确语法吗?我见过@Path中使用的一些正则表达式,但我不明白.老实说,我真的只想抓住参数并尽可能将它们放入变量中.
我必须创建一个具有永久连接的应用程序(我需要从服务器发送数据更新),并且同时需要配置此应用程序。我的想法是使用Socket.IO进行连接,并将其也用于配置(具有特定的事件名称)。
但是有人说最好保留Socket.IO仅用于从服务器发送数据,并使用REST API来配置应用程序。
我想知道将REST API与Websocket连接一起使用是否是一种好习惯,如果没有,为什么。
我知道 HTTP 是一种无状态协议。但是对于 HTTP 协议的无状态没有正确的解释。为什么 HTTP 协议是无状态的?当 HTTP 协议有状态时会发生什么?