Rest Api最佳实践 - 将日期作为查询参数传递

时间:2017-07-04 09:11:42

标签: node.js rest express

我正在使用NodeJ编写休息服务并表达中间件。我有以下问题 -

  1. 我必须在每个服务中使用userid和token进行身份验证,而不管方法类型如GETPOSTPUTDELETE。采用这两个参数的最佳方法是什么,即请求标头或查询参数?我不想把它作为身体参考,因为获取请求不会有身体。

  2. 我想编写一个方法类型GET的服务来进行数据检索,这个调用的参数是字符串和日期。我是如何将params作为查询参数传递的,特别是日期参数应该将其作为js日期或任何其他格式传递?

    GET - https://localhost:someport/<objectid>/<createddate>
    headers - x-user-id:someid
              x-access-token:sometoken
    

    如果这样,那么应该传递创建日期的格式。

    或者我应该使用下面的那个?

    GET - https://localhost:someport/
    headers - x-user-id:someid
              x-access-token:sometoken
              x-object-id:someid
              x-created-date:somedate
    

2 个答案:

答案 0 :(得分:1)

休息API设计的最佳实践表明,将非敏感用户信息的参数公开以获取请求作为查询参数。所以用户id和令牌之类的东西应该放在标题中,其他东西可以放入get request params。

选择第一个在标题中只包含用户ID和标记的文件。

答案 1 :(得分:1)

请求标头是发送这类敏感信息的最佳位置。标头在http请求的所有方法中都很常见。因此,您不必担心GETPOSTPUT等方法。如果你使用查询参数,我们会在网址中更难看。
此外,我不知道UserIDtoken的使用情况。因为在restful服务器中我们也使用令牌来识别用户。因此,我们通常不会发送用户ID。