api应该包含一个称为“将文本写入文件”的功能,并输入一个字符串参数
关于写入磁盘的功能,我没有问题,我实现了代码,我的问题是如何使用python设置其余API。
编辑: 这是我的代码:
from flask import (
Flask,
render_template
)
import SocketServer
import SimpleHTTPServer
import re
app = Flask(__name__, template_folder="templates")
@app.route('/index', methods=['GET'])
def index():
return 'Welcome'
@app.route('/write_text_to_file', methods=['POST'])
def write_text_to_file():
f = open("str.txt", "w+")
f.write("hello world")
f.close()
if __name__ == '__main__':
app.run(debug=True)
无论如何,当我尝试测试我的REST API时: http://127.0.0.1:5000/write_text_to_file
现在我正在尝试测试rest-api,但是如何使我的代码启动服务器并测试发布请求api,这就是我的test_class:
import requests
import unittest
API_ENDPOINT="http://127.0.0.1:5000/write_text_to_file"
class test_my_rest_api(unittest.TestCase):
def test_post_request(self):
"""start the server"""
r = requests.post(API_ENDPOINT)
res = r.text
print(res)
答案 0 :(得分:1)
您正在对此网址进行GET
请求,但您已指定此端点只能接受POST
:
@app.route('/write_text_to_file', methods=['POST'])
另外,Flask不需要导入SocketServer
和SimpleHTTPServer
。
答案 1 :(得分:0)
不允许该方法,因为Chrome(或任何浏览器)发出GET请求。
在这里,您将其定义为POST
@app.route('/write_text_to_file', methods=['POST'])
将其更改为GET方法,或使用POSTMan之类的工具执行其他HTTP调用类型