栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将来自REST调用的@PathParam值存储在列表或数组中

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将来自REST调用的@PathParam值存储在列表或数组中

可能是重新思考此设计的好机会。通过使用

/
s,我们以一种表示的方式
/
进行了尝试,每种方法都试图查找不同的资源。键/值对(在URL的上下文中)主要用于查询参数或矩阵参数。

如果

/property/{uuid}
是通往主要资源的路径,而我们只想向客户端提供一些参数以访问该资源,则可以允许矩阵参数或查询参数

矩阵参数 (在请求网址中)看起来像

/12345;key1=value1;key2=value2;key3=value3

获取值的资源方法可能类似于

@GET@Path("/property/{uuid}")public Response getMatrix(@PathParam("uuid") PathSegment pathSegment) {    StringBuilder builder = new StringBuilder();    // Get the {uuid} value    System.out.println("Path: " + pathSegment.getPath());    MultivaluedMap matrix = pathSegment.getMatrixParameters();    for (Object key : matrix.keySet()) {        builder.append(key).append(":")    .append(matrix.getFirst(key)).append("n");    }    return Response.ok(builder.toString()).build();}
  • 看到
    PathSegment

查询参数 (在请求网址中)可能类似于

/12345?key1=value1&key2=value2&key3=value3

获取值的资源方法可能类似于

@GET@Path("/property/{uuid}")public Response getQuery(@PathParam("uuid") String uuid,    @Context UriInfo uriInfo) {    MultivaluedMap params = uriInfo.getQueryParameters();    StringBuilder builder = new StringBuilder();    for (Object key : params.keySet()) {        builder.append(key).append(":")    .append(params.getFirst(key)).append("n");    }    return Response.ok(builder.toString()).build();}
  • 看到
    UriInfo

区别在于Matrix参数可以嵌入到路径段中,而查询参数必须放在URL的末尾。您还会注意到语法上的一些差异。


更新

同样查看

PUT
in方法的签名,似乎您正在尝试使用路径作为要更新的值来更新资源,因为我没有在实体主体的方法中看到任何参数。放置时,您应该在实体主体中发送表示,而不是作为路径段_或_ 参数发送。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/497903.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号