openapi_todo.py 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from flask import Flask, request
  2. from flask_restful import Api, Resource
  3. app = Flask(__name__)
  4. api = Api(app)
  5. # Mock data
  6. todos_data = {
  7. "global": ["Buy groceries", "Finish project"],
  8. "user1": ["Go for a run", "Read a book"],
  9. }
  10. class TodosResource(Resource):
  11. def get(self, username):
  12. todos = todos_data.get(username, [])
  13. return {"todos": todos}
  14. def post(self, username):
  15. data = request.get_json()
  16. new_todo = data.get("todo")
  17. todos_data.setdefault(username, []).append(new_todo)
  18. return {"message": "Todo added successfully"}
  19. def delete(self, username):
  20. data = request.get_json()
  21. todo_idx = data.get("todo_idx")
  22. todos = todos_data.get(username, [])
  23. if 0 <= todo_idx < len(todos):
  24. del todos[todo_idx]
  25. return {"message": "Todo deleted successfully"}
  26. return {"error": "Invalid todo index"}, 400
  27. api.add_resource(TodosResource, '/todos/<string:username>')
  28. if __name__ == '__main__':
  29. app.run(port=5003, debug=True)