【问题标题】:IBM Function returning weird data back when calling REST API EndpointIBM 函数在调用 REST API 端点时返回奇怪的数据
【发布时间】:2019-01-25 04:17:13
【问题描述】:

我有一个 IBM Cloud 函数,例如:

 return {'body': csv_output.getvalue(),
            'headers': {'Content-Type': 'text/csv',
            'Content-Disposition': 'attachment;filename=dat.csv'}}

当调用公共 API 端点时,它会返回一个包含正确数据的 csv 文件。

但是当我使用邮递员进行 REST API 端点调用时,我得到了一个奇怪的结果,例如:

{
    "annotations": [
        {
            "key": "exec",
            "value": "python:3.7"
        },
        {
            "key": "web-export",
            "value": true
        },
        {
            "key": "final",
            "value": true
        },
        {
            "key": "raw-http",
            "value": true
        }
    ],
    "exec": {
        "kind": "python:3.7",
        "code": "import 

谁能告诉我我做错了什么?似乎我正在取回代码而不是调用函数。

【问题讨论】:

  • 您能否添加有关如何在 Postman 上调用端点的详细信息(请求标头、正文等)?
  • @VidyasagarMachupalli - 我添加了我正在尝试的图像。此外,当我直接输入其余 api url 并提供用户名/密码时,它会给出相同的结果。

标签: ibm-cloud ibm-cloud-functions


【解决方案1】:

您似乎正在使用 POSTMAN 返回操作详细信息(通过平台 API),而不是作为 Web 操作调用。

操作的 HTTP 端点是 https://{APIHOST}/api/v1/namespaces/_/actions/<ACTION_NAME>

将操作作为 Web 操作调用的 HTTP 端点是 https://{APIHOST}/api/v1/web/{QUALIFIED ACTION NAME}.{EXT}

【讨论】:

  • Web 操作有效,问题出在 REST API 调用上。
  • 通过 API(而不是 Web 操作)调用时,您需要发送 POST 请求而不是 GET
  • 我没有在邮递员中尝试这个,目前只是将 url 直接放入浏览器?仍然返回奇怪的数据,如果我在最后输入 .csv,它就会出错。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-17
  • 1970-01-01
  • 2020-12-17
  • 2012-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多