【问题标题】:What is the correct POST format to request data from HerokuApp using Tokens?使用令牌从 HerokuApp 请求数据的正确 POST 格式是什么?
【发布时间】:2019-12-06 23:51:35
【问题描述】:

场景:我正在尝试从 Herokuapp 访问在线计算器服务。
问题:我是 Heroku & Postman 的新手。

这是服务的给定网址:

Base URL: https://calculator-frontend-challenge.herokuapp.com

这应该是一个 POST;所以我还得到了以下信息:

POST /calculations

...创建一个新的计算:
● 输入:{}
● 输出:

{
"id": ​"ecc7ab90-0a59-4168-b1e5-b5cf63edf9fd"
}

好的......到目前为止,一切都很好。

所以我得到了生成和检索的 id。

现在我正在尝试为每条指令附加一些令牌:

通过邮递员,我尝试添加“令牌”:

和ID:
我在这里迷路了。
我需要正确的 POST 格式才能从 herokuapp 中获取信息。

这不需要使用 Postman。
我只是将它用作开发工具。

附件是每个请求的分配。 我得到了部分结果,但结果很不稳定。

【问题讨论】:

  • 我正在尝试为每条指令附加一些标记:我在哪里可以找到这些指令?有没有可用的文档?
  • 我已根据请求添加了作业。

标签: ios swift heroku postman token


【解决方案1】:

  1. 您需要将calculationId 添加到请求路径本身。它不应该作为 Auth Header 添加。
  2. 令牌旨在作为请求正文中的 json 有效负载发送。它们不打算作为查询参数发送。

【讨论】:

    【解决方案2】:

    POST 命令有一个主体,它们通常不使用查询参数。看起来您应该点击根端点以获取稍后将使用的 id,这是您在第一次调用时的响应。然后,您应该使用带有适当 JSON 正文的 POST 来构建您的计算。

    POST https://calculator-frontend-challenge.herokuapp.com/calculations/ecc7ab90-0a59-4168-b1e5-b5cf63edf9fd/tokens
    

    在您的 URLRequest 中,您可以添加 JSON 正文。 Swift 中最简单的方法是使用 Codable 类型,然后使用 JSONEncoder 创建数据。

    struct TokenRequest: Codable {
        let type: TokenType
        let value: String
    
        enum TokenType: String, Codable {
            case operator
            case number
        }
    }
    
    let tokenRequest = TokenRequest(type: .number, value: "5")
    var request = URLRequest(url: ...)
    request.httpBody = try? JSONEncoder().encode(tokenRequest)
    

    您应该阅读 RESTful 服务,以更好地了解其工作原理/原因。

    【讨论】:

    • 感谢您的回复。到目前为止,我还没有让这个工作。所以我把这个任务放在一边;也许稍后再回来。
    猜你喜欢
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多