通过 Python-2.7、connexion 和 Pycharm 发送正文参数时遇到问题。
api.yaml
swagger: '2.0'
info:
title: Products Api Backend
version: "1.0.0"
consumes:
- application/json
produces:
- application/json
paths:
/products:
post:
operationId: app.addProduct
parameters:
- name: body
description: Product payload to add
in: body
required: true
schema:
$ref: '#/definitions/ProductParameters'
responses:
200:
description: Data received and added correctly
schema:
type: string
definitions:
ProductParameters:
description: Needed attributes for each post request
properties:
name:
type: string
description: Product name
应用程序.py
import connexion
api = connexion.api
def addProduct(name):
return 'Product Added' # or 'Product Added', 200
app = connexion.App(__name__)
app.add_api('api.yaml', strict_validation=True)
if __name__ == '__main__':
app.run(port=8092, debug=True)
跑步
r = requests.post(appUrl, data={'name':'Product title here'})
print r
print r.content
返回
<Response [400]>
{
"detail": "Extra formData parameter(s) name not in spec",
"status": 400,
"title": null,
"type": "about:blank"
}
YAML 在Swagger Editor中验证,但运行 Send Request 给出
ERROR Method Not Allowed
Headers
undefined
Body
将 addProduct() 的返回更改为
'Product Added', 200
仍然返回 400,所以问题显然在连接级别。
非常感激