-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebservice.py
66 lines (53 loc) · 1.96 KB
/
webservice.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# pip install Flask
# jsonfy é um helper que transforma em JSON
# request é um objeto que possui os dados da requisição
from flask import Flask, jsonify, request
from person import Person
app = Flask(__name__)
# API Index
@app.route('/')
def index():
return jsonify({ 'status': 404, 'mensagem': 'Este é o meu web API de Pessoas.' })
# GET /persons/
@app.route('/persons')
def persons():
return jsonify([person.to_dictionary() for person in Person.select()])
# GET /persons/1
@app.route('/persons/<int:id>')
def person(id):
try:
person = Person.get(id = id)
return jsonify(person.to_dictionary())
except Person.DoesNotExist:
return jsonify({ 'status': 404, 'mensagem': 'Pessoa não encontrada.' })
# POST /persons/
@app.route('/persons', methods = ['POST'])
def new_person():
try:
person = Person(name = request.json['name'], age = request.json['age'])
person.save()
return jsonify({ 'status': 200, 'mensagem': 'Pessoa salva com sucesso.' })
except Exception as e:
return jsonify({ 'status': 404, mensagem: 'Ocorreu algum erro inesperado'})
# PUT/PATCH /persons/1
@app.route('/persons/<int:id>', methods = ['PUT', 'PATCH'])
def editar_postagem(id):
try:
person = Person.get(id = id)
except Person.DoesNotExist as e:
return jsonify({'status': 404, 'mensagem': 'Pessoa não encontrada.'})
person.name = request.json['name']
person.age = request.json['age']
person.save()
return jsonify({'status': 200, 'mensagem': 'Pessoa salva com sucesso.'})
# DELETE /persons/1
@app.route('/persons/<int:id>', methods = ['DELETE'])
def apagar_postagem(id):
try:
person = Person.get(id = id)
person.delete_instance()
return jsonify({'status': 200, 'mensagem': 'Pessoa excluída com sucesso'})
except Person.DoesNotExist:
return jsonify({'status': 404, 'mensagem': 'Pessoa não encontrada'})
if __name__ == '__main__':
app.run(debug = True)