Я пытаюсь создать приложение на Flask в Python, которое взаимодействует с RESTful API, использующим OAuth2.0, но у меня возникают проблемы с отправкой запросов. Я успешно получаю токен доступа с сервера, но когда я пытаюсь сделать запрос GET или POST, я всегда получаю 404 в качестве ответа. Я новичок в RESTful API, так что я не знаю, что я могу здесь делать неправильно или что означает 404 в этом контексте.
Вот файл .py, в котором я пытаюсь отправить запрос GET и POST в API. TokenHandler
- это просто вспомогательный класс, который я создал, который отслеживает информацию, связанную с токеном, а строки print(response)
всегда выводят «Response [404]».
from flask import Flask, render_template, request, redirect
from src.apitest import TokenHandler
import requests
from oauthlib.oauth2 import LegacyApplicationClient
from requests_oauthlib import OAuth2Session
import json
app = Flask(__name__)
token_handler = TokenHandler()
@app.route('/find_customer')
def find_customer():
return render_template('customer_find_page.html')
@app.route('/find_customer', methods=['POST'])
def find_customer_get():
customer_id = request.form['text0']
oauth = OAuth2Session(client=LegacyApplicationClient(client_id=token_handler.CLIENT_ID))
oauth.fetch_token(token_url=token_handler.TOKEN_ENDPOINT,
username=token_handler.USERNAME, password=token_handler.PASSWORD, client_id=token_handler.CLIENT_ID,
client_secret=token_handler.CLIENT_SECRET,
scope=token_handler.SCOPE)
response = oauth.get("https://sedonacloudtest.com/api/customers/"+customer_id)
print(response)
return redirect('/find_customer')
@app.route('/add_customer')
def add_customer():
return render_template('customer_add_page.html')
@app.route('/add_customer', methods=['POST'])
def add_customer_post():
customer_id = request.form['text0']
customer_name = request.form['text1']
data = {"customer_id": customer_id, "customer_name": customer_name}
oauth = OAuth2Session(client=LegacyApplicationClient(client_id=token_handler.CLIENT_ID))
oauth.fetch_token(token_url=token_handler.TOKEN_ENDPOINT,
username=token_handler.USERNAME, password=token_handler.PASSWORD, client_id=token_handler.CLIENT_ID,
client_secret=token_handler.CLIENT_SECRET,
scope=token_handler.SCOPE)
response = oauth.post("https://sedonacloudtest.com/api/customers", data=data)
print(response)
return redirect('/add_customer')
if __name__ == "__main__":
app.run()