PHP - restful API - 具有长URI的

时间:2015-06-25 09:41:27

标签: php json rest get restful-url

我在PHP Restful API中遇到问题......

我试图通过调用此API获取一些产品信息(重量,流程,价格......)。

问题是提供的URI可能包含很多字符,因为我们试图尽可能减少API调用。

正如您所理解的,如果我们使用HTTP GET方法发送太长的URI,我肯定会以414或500 HTTP错误结束。

那么我们怎么做:

  1. 发送HTTP GET请求以获取具有长URI的信息
  2. 保持RESTFUL(不使用POST,就像我参考Restful文档 - >这是主要问题)
  3. 以下是请求的示例:

    http://<myWebsite>/rprocess/api/process/{"data":["FLY.DELeco.LOT100.DIM10x10.FACrv.SUPdemma.GRA350.PELbrv.VERss","FLY.DELnor.LOT500.DIM20x30.FACr.SUPcoubr.GRA300.PELbrv.VERss"]}
    
    • 如您所见,我们在URI中发送一个JSON编码的字符串。
    • 此示例有效,因为我们只尝试获取两个产品的[处理]信息(我们希望进行更多的调用)

    我已经搜索过这个问题的答案,但看起来我们不能在这种情况下保持安宁。

    以下是我找到的答案:

    1. 使用POST并将设置标头添加到X-HTTP-Method-Override: GET
    2. 增加服务器上的url limit size(不推荐)
    3. 拆分GET请求以便不达到网址长度限制(这不是一个好主意,因为API可以一次处理更多产品,因为我们实际上可以发送它...)
    4. 我希望这些信息可以帮助您回答我的问题:)

      感谢您的帮助

1 个答案:

答案 0 :(得分:0)

如果您有一个规范化的数据库表来帮助缩短您的请求,也许您可​​以尝试按ID查找数据

或者您可以尝试将查询POST到服务器,存储请求的详细信息,然后使用先前存储的请求的ID执行GET请求