2017-04-24 1 views
-1

J'ai une fonction python qui prend un objet JSON en entrée et retourne une sortie 'YES/NO'. Maintenant, j'essaye de le convertir en serveur d'API, de sorte qu'une autre API puisse l'appeler, passer le JSON et mon serveur d'API peut renvoyer un 'OUI/NON'.Construire un serveur API RESTful en utilisant FLASK?

J'ai lu à propos de Flask-RESTFul et j'ai regardé quelques exemples. Mais tous sont écrits du point de vue du client API, comme une API pour lire une liste de tâches ou lire des données à partir d'un db etc.

Quelqu'un pourrait-il donner un exemple de 2 petits scripts - l'un agissant comme un serveur API et un autre agissant en tant que client API. Le client API appelle le serveur API et transmet le JSON suivant -

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

et de pomme 'le retour du serveur API en tant que sortie.

Merci d'avance!

+0

Avez-vous essayé la recherche de tutoriels existant ailleurs sur Internet d'abord comme http://flask-restful.readthedocs.io/en/ 0.3.5/quickstart.html – metatoaster

+0

Bonjour metatoaster! Oui, j'ai lu ce guide de démarrage rapide. Il parle de construire un client API pour un service web todo. Un exemple concret court serait utile. – Amit

+0

@Amit Le code ci-dessous ne fonctionne pas? Vous pouvez utiliser Flask Restful avec les classes et obtenir, publier des méthodes etc mais c'est l'exemple le plus simple. J'ai oublié de mentionner la demande POST –

Répondre

2

Voici un exemple d'api de repos.

code côté serveur

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) 

code côté client

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

Essayé le code ... cela a fonctionné après un petit tweak. S'il vous plaît faites ces changements, afin que je puisse accepter votre réponse. 1. inclure 'from flask import request' dans le code côté serveur. Et merci beaucoup pour votre aide. Encore une question - est-ce l'API RESTful? – Amit

+0

@Amit Mise à jour de mon code –