2017-04-24 63 views
-1

我有一個python函數,它將一個JSON對象作爲輸入並返回'YES/NO'輸出。現在,我試圖將其轉換爲API服務器,以便其他API可以調用它,傳遞JSON並且我的API服務器可以返回'YES/NO'。使用FLASK構建一個RESTful API服務器?

我讀了一下Flask-RESTFul,看了幾個例子。但所有這些都是從API客戶端的角度編寫的,就像一個API來讀取待辦事項列表或從db中讀取數據等。

有人可以給出2個小腳本的示例 - 一個充當API服務器,另一個充當API客戶端。該API客戶端調用API服務器並通過以下JSON -

{'fruit_1':'apple', 'fruit_2':'melon'} 

和API服務器返回「蘋果」作爲輸出。

在此先感謝!

+0

您是否嘗試過尋找第一個存在的教程在互聯網上的其他地方一樣http://flask-restful.readthedocs.io/en/ 0.3.5/quickstart.html – metatoaster

+0

嗨metatoaster! 是的,我閱讀了這本快速入門指南。它討論瞭如何爲待辦事項Web服務構建API客戶端。一個簡短的具體例子會有所幫助。 – Amit

+0

@Amit下面給出的代碼無效嗎?你可以使用Flask Restful來獲取,發佈方法等,但這是最簡單的例子。我忘了提及請求POST –

回答

2

這裏是一個示例Restful api代碼。

服務器端代碼

from flask import Flask, request 
from flask_restful import Resource, Api 

app = Flask(__name__) 
api = Api(app) 

class MyResource(Resource): 
    def post(self): 
     data = request.data 
     # Process data 
     return {'message': 'YES/NO'} 

api.add_resource(MyResource, '/') 

if __name__ == '__main__': 
    app.run(debug=True) 

客戶端代碼

import json 
import requests 
url = 'http://127.0.0.1:5000' 
data = json.dumps({'fruit_1':'apple', 'fruit_2':'melon'}) 
headers = {'Content-Type': 'application/json'} 
response = requests.post(url, data=data, headers=headers) 
print(response.json()['message']) 
+1

嘗試了代碼...它經過一個小小的調整。請進行這些更改,以便我可以接受您的答案。 1.在服務器端代碼中包含'來自瓶子導入請求'。 非常感謝你的幫助。 還有一個問題 - 這是RESTful API嗎? – Amit

+0

@Amit更新我的代碼 –