|
|
from flask import Flask, jsonify, request |
|
|
|
|
|
app = Flask(__name__) |
|
|
|
|
|
|
|
|
books = [ |
|
|
{"id": 1, "title": "Python Programming", "author": "Guido van Rossum"}, |
|
|
{"id": 2, "title": "Flask Basics", "author": "Miguel Grinberg"}, |
|
|
{"id": 3, "title": "Data Science Handbook", "author": "Jake VanderPlas"} |
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/', methods=['GET']) |
|
|
def get_books_list(): |
|
|
return jsonify(books) |
|
|
|
|
|
|
|
|
@app.route('/books', methods=['GET']) |
|
|
def get_books(): |
|
|
return jsonify(books) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/books/<int:book_id>', methods=['GET']) |
|
|
def get_book(book_id): |
|
|
book = next((book for book in books if book['id'] == book_id), None) |
|
|
if book: |
|
|
return jsonify(book) |
|
|
else: |
|
|
return jsonify({'message': 'Book not found'}), 404 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/books', methods=['POST']) |
|
|
def create_book(): |
|
|
new_book = request.get_json() |
|
|
books.append(new_book) |
|
|
return jsonify({'message': 'Book created successfully'}), 201 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/books/<int:book_id>', methods=['PUT']) |
|
|
def update_book(book_id): |
|
|
book = next((book for book in books if book['id'] == book_id), None) |
|
|
if not book: |
|
|
return jsonify({'message': 'Book not found'}), 404 |
|
|
else: |
|
|
data = request.get_json() |
|
|
book.update(data) |
|
|
return jsonify({'message': 'Book updated successfully'}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/books/<int:book_id>', methods=['DELETE']) |
|
|
def delete_book(book_id): |
|
|
global books |
|
|
books = [book for book in books if book['id'] != book_id] |
|
|
return jsonify({'message': 'Book deleted successfully'}) |
|
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
app.run(debug=True) |
|
|
|