Pra*_* R. 4 java rest json spring-mvc
我正在创建一个包含REST风格服务的Web应用程序,我想要了解一下我的Java服务器端应该如何接受POST请求的首选(标准)方法:
方法1: http:// localhost:8080/services / processser / uid / {uidvalue}/eid/{eidvalue}
方法2: http:// localhost:8080/services/processuser {uid:"",eid:""} - 这将在帖子正文中作为JSON发送
两种方法都使用"application/json"内容类型,但每种方法都有优点和缺点.方法2的一个缺点,我可以立即想到的是,JSON数据需要映射到Java Object,从而在任何用户访问"processuser"servlet api时创建Java对象.非常感谢您的意见.
在此特定实例中,数据将用于查询数据库,以将json响应返回给客户端.
我想我们需要从你的问题中稍微回顾一下.您的路段开头于:
/services/processuser
Run Code Online (Sandbox Code Playgroud)
这是个错误.URI应标识资源,而不是操作.这可能并不总是可行,但这是你应该努力的事情.
在这种情况下,您似乎用a uid
和a eid
(无论是那些)识别您的用户.如用户是指由你可以构建路径/user/<uid>/<eid>
, /user/<uid>-<eid>
(如果你必须/user/uid/<uid>/eid/<eid>
); 如果eid
是专业化,而不是平等的uid
话,/user/<uid>;eid=<eid>
那就更合适了.
您可以通过发布/user/
或/user/<uid>/<eid>
如果您事先知道标识符来创建新用户,使用DELETE on删除用户/user/<uid>/<eid>
并使用PUT 更改状态/user/<uid>/<eid>
.
因此,要回答您的问题,/user/<uid>/<eid>
如果"processuser"旨在使用您提供的数据更改用户的状态,则应使用PUT .否则,到REST模型的映射不是那么干净,可能最好的选择是定义资源/user/process/<uid>/<eid>
并在那里使用所有数据进行POST,但是对于所有数据的POST /user/process
将或多或少相同,因为我们'已经在类似RPC的阵营.
归档时间: |
|
查看次数: |
396 次 |
最近记录: |