Advertisement
AntonioVillanueva

Web Rest Server Python

Jan 10th, 2023
842
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.64 KB | None | 0 0
  1. """ serveur REST web ,avec base de données
  2. getAllEmp
  3. curl -i http://localhost:5000/axiome/employe
  4. getEmp
  5. curl -i http://localhost:5000/axiome/employe/{$id}
  6. default
  7. curl -i http://localhost:5000
  8. updateEmp
  9. curl -i -H "Content-type: application/json" -X PUT -d '{"title":"esclave"}' http://localhost:5000/axiome/employe/1
  10. createEmp
  11. curl -i -H "Content-type: application/json" -X POST -d '{"id":"69","name":"Angus","title":"guitar"}' http://localhost:5000/axiome/employe
  12. Delete
  13. curl -i -X Delete http://localhost:5000/axiome/employe/1
  14.  
  15. """
  16. from flask import Flask
  17. from flask import jsonify
  18. from flask import request
  19. app = Flask(__name__)
  20.  
  21. base_address="axiome"
  22. hostname ="localhost"
  23.  
  24. employesDB=[
  25.      {
  26.      'id':'1',
  27.      'name':'Liberto Zaragoza',
  28.      'title':'pdg'
  29.      },
  30.      {
  31.      'id':'2',
  32.      'name':'Gilles Pignatta',
  33.      'title':'développeur'
  34.      },
  35.      {
  36.      'id':'3',
  37.      'name':'Antonio Villanueva',
  38.      'title':'développeur'
  39.      },
  40.      {
  41.      'id':'4',
  42.      'name':'Franck Clerissi',
  43.      'title':'Charge d affaires '
  44.      }
  45.  ]
  46.  
  47. @app.route("/")
  48. def default():
  49.     """page Web par défaut """
  50.     return jsonify({'Base Web address':base_address})
  51.  
  52. @app.route('/axiome/employe',methods=['GET'])
  53. def getAllEmp():
  54.     """renvoie toute la base de données """
  55.     return jsonify({'emps':employesDB})
  56.    
  57. @app.route('/axiome/employe/<empId>',methods=['GET'])
  58. def getEmp(empId):
  59.     """retourner un seul employé <empId> """
  60.     usr = [ emp for emp in employesDB if (emp['id'] == empId) ]
  61.     return jsonify({'employe':usr})    
  62.  
  63. @app.route('/axiome/employe',methods=['POST'])
  64. def createEmp():
  65.     """ Créer un nouvel employé"""
  66.     dat = {
  67.     'id':request.json['id'],
  68.     'name':request.json['name'],
  69.     'title':request.json['title']
  70.     }
  71.     employesDB.append(dat)
  72.     return jsonify(dat)
  73.  
  74. @app.route('/axiome/employe/<empId>',methods=['PUT'])
  75. def updateEmp(empId):
  76.     """mettre à jour un employé dans la base de données """
  77.     em = [ emp for emp in employesDB if (emp['id'] == empId) ]
  78.  
  79.     print ("updateEmp ",em)
  80.     if 'name' in request.json :
  81.         em[0]['name'] = request.json['name']
  82.        
  83.     if 'title' in request.json:
  84.         em[0]['title'] = request.json['title']
  85.        
  86.     return jsonify({'emp':em[0]})  
  87.  
  88. @app.route('/axiome/employe/<empId>',methods=['DELETE'])
  89. def deleteEmp(empId):
  90.     """Efface employe dans employeeDB """
  91.     em = [ emp for emp in employesDB if (emp['id'] == empId) ]
  92.     if len(em) == 0:#Element vide pas trouve ...
  93.         return jsonify({'response':'Erreur employe '+empId+' n \'existe pas' })
  94.        
  95.     employesDB.remove(em[0]) #Efface id num        
  96.     return jsonify({'response':'delete employe'+empId})
  97.  
  98. if __name__ == "__main__":
  99.     #app.run()
  100.      app.run( host=hostname,port=5000)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement