【问题标题】:Flask REST api headers returned upon request and what exactly is a header [duplicate]根据请求返回的 Flask REST api 标头以及标头到底是什么 [重复]
【发布时间】:2018-05-02 21:57:06
【问题描述】:

什么是 REST 标头?我在理解什么是标头时遇到了问题,因为起初我认为它是请求者在 HTTP 中看不到的东西。但是当我做更多的研究时,我发现它们有时会进入体内。有人可以帮我大致理解一下吗?

另外,我有一个家庭作业,试图开发一个 Flask API,它在所有请求中返回数据和像“v:1.2”这样的标头。我有一些问题,我无法弄清楚。

  1. 如何让我的 API 在每次发出请求时返回包含自定义信息(例如“XYZ”)的标头?这会在体内返回吗?

  2. 我创建了一个“/”主请求,该请求从我的 JSON 中返回所有数据,然后我尝试创建一个“/item”,它从我的 JSON 的“项目”中返回数据,但我无法得到它去工作。当我测试 API 时,它总是返回找不到它。我写购买[“项目”]时有问题吗?

数据

 purchases = [
 {
"transactions": [
    {
        "items": [
            {
                "name": "My Item:",
                "price": 15.99
            }
        ],
        "name": "My Wonderful Store"
    },
    {
        "time": [
            {
                "hour bought": "02:00"
            },
        ]
    }
]
}
]

观看次数

# GET /
@app.route("/")  # shows your whole list
def get_purchases():
    return jsonify({"purchases": purchases})


# GET /item
@app.route("/item")  # gets just item
def get_statistics_loads():
     return jsonify({"items:": purchases["items"]})

app.run(port=5000)

【问题讨论】:

  • 购买是一个列表。你不能做purchases["item"],因为它不是字典

标签: python api flask header


【解决方案1】:
import flask
from flask import  jsonify
from flask import make_response

app = flask.Flask(__name__)
purchases = [
    {
        "transactions": [
            {
                "items": [
                    {
                        "name": "My Item:",
                        "price": 15.99
                    }
                ],
                "name": "My Wonderful Store"
            },
            {
                "time": [
                    {
                        "hour bought": "02:00"
                    },
                ]
            }
        ]
    }
]


# GET /
@app.route("/")  # shows your whole list
def get_purchases():
    response = make_response(jsonify(purchases))
    response.headers["customHeader"] = "custom value"
    return response

您的购买是一个列表,而不是一个字典。您不能以 dict 方式访问“项目”

【讨论】:

  • 感谢您帮助我!在我写我的帖子之前,我已经看过上述主题,但我不知道如何实现其他帖子。这就是我发布整个代码的原因。我不是专家,必须从某个地方开始......
猜你喜欢
  • 2019-09-05
  • 2015-05-01
  • 2018-11-15
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
  • 2018-01-23
  • 2019-05-18
  • 2019-07-17
相关资源
最近更新 更多