【问题标题】:Permanent REST web service url with many and long parameters具有许多长参数的永久 REST Web 服务 URL
【发布时间】:2014-01-05 18:04:18
【问题描述】:
因为我发现很难在标题中解释我的问题,所以我将进一步解释一下:
我想/我正在为地理用例编写一个 JAX-RS Web 服务(Jersey/Servlet3.0)和相应的 JS 库。 Web 服务的输入是地理点(纬度、经度)的两个列表(源点和目标点),每个点都有一个参数列表。由于点数基本没有限制我不知道如何结合URL长度限制和参数列表的无限性。
这里又是限制:
- 易于共享 URL(所以 POST 可能不会完全削减它?)用于社交媒体共享,当然也易于调试
- 可以看到一个示例配置here 请注意可以有嵌套的参数集(第 1 点有它自己的参数)
- 需要能够集成到外部网站(带有书签的网址)
- 并非所有参数都是强制性的,处理默认值/缺失值的最佳方法是什么?
目前我想到的是:
- 创建大量参数
- jsonify配置并通过url参数发送到服务器
但我不太喜欢这些选项。我错过了什么吗?
抱歉这个相当模糊的问题。
丹尼尔
【问题讨论】:
标签:
java
web-services
http
rest
jersey-2.0
【解决方案1】:
好的
-
为了方便分享,为什么不只实现 tinyURl 或 bit.ly 样式的分享系统 - 显然,您不能同时拥有一个易于传入的 url(一个便于向服务器提供详细信息的 URL),即易于分享(人性化且简短) - 但您可以非常轻松地将结果(或输入并每次计算)保存到数据库并将其链接到 tinyURl。
由于数据量大,POST 将是处理此问题的唯一方法。
只需作为 JSON 传递 - 以这种方式嵌套参数很容易
不太明白这部分 - 对于使用它的外部站点,他们可以发布数据并返回答案 - 或者使用“tinyurl / bit.ly 样式系统的第 1 点方法,它可以调用它在 iframe 中?
您将在服务器端处理缺少的参数/默认值 - 为每个参数创建一个函数 - 如果需要参数,则抛出错误 - 如果参数具有默认值,则在函数中包含 this,如果不包含参数,则不要运行该函数。
希望这有意义吗?