具有许多长参数的永久REST Web服务URL

时间:2014-01-05 18:04:19

标签: java web-services http rest jersey-2.0

由于我发现很难在标题中解释我的问题,我将进一步解释它: 我想/我正在为一个地理用例编写一个JAX-RS Web服务(Jersey / Servlet3.0)和相应的JS库。 Web服务的输入是地理点(纬度,经度)的两个列表(源和目标点),并且每个点具有参数列表。由于点数基本没有限制,我不知道如何组合URL长度限制和参数列表的无限性。

以下是限制:

  1. 易于共享网址(因此POST可能不会完全削减它?)用于社交媒体共享,当然还有简单的调试
  2. 可以看到一个示例配置here请注意,可以有嵌套的参数集(第1点有自己的参数)
  3. 需要能够集成到外部网站(可收藏的网址)
  4. 并非所有参数都是强制性的,处理默认值/缺失值的最佳方法是什么?
  5. 到目前为止我想到的是:

    • 创建一大堆参数
    • jsonify配置并通过url参数
    • 将其发送到服务器

    但我真的不喜欢这些选择。我错过了什么吗? 对不起这个相当含糊的问题。 丹尼尔

1 个答案:

答案 0 :(得分:3)

好的你的观点

  1. 为了便于分享,为什么不只是实现一个tinyURl或bit.ly样式共享系统 - 显然你不能同时拥有一个易于传递的URL(一个可以很容易地为服务器提供详细信息的URL) )这很容易分享(人性化和简短) - 但您可以非常轻松地将结果(或输入和计算每次)保存到数据库并将其链接到tinyURl。

    作为旁边的POST将是处理此问题的唯一方法,因为数据量很大。

  2. 只需传递JSON - 这样容易嵌套参数

  3. 不完全得到这个部分 - 对于外部网站使用它,他们可以发布数据并返回答案 - 或使用'tinyurl / bit.ly样式系统的第1点方法,它可以调用此在iframe?

  4. 您将在服务器端处理缺少的参数/默认值 - 为每个参数创建一个函数 - 如果参数是预期的,则抛出错误 - 如果参数有一个默认值,请在函数中包含此函数,如果不包括参数则不要运行该功能。

  5. 希望有道理吗?