from flask import Flask, request, jsonify import uuid import requests app = Flask(__name__) # Хранилище данных books = [] SUBSCRIPTION_SERVICE_URL = "http://subscription-service:5000/api/subscriptions/" @app.route('/api/books/', methods=['GET']) def get_books(): return jsonify(books), 200 @app.route('/api/books/', methods=['GET']) def get_book(uuid): book = next((b for b in books if b['uuid'] == str(uuid)), None) if not book: return jsonify({'error': 'Book not found'}), 404 subscription_uuid = book['subscriptionUuid'] subscription = requests.get(f"{SUBSCRIPTION_SERVICE_URL}{subscription_uuid}").json() book['subscriptionInfo'] = subscription return jsonify(book), 200 @app.route('/api/books/', methods=['POST']) def create_book(): data = request.json book = { 'uuid': str(uuid.uuid4()), 'author': data['author'], 'subject': data['subject'], 'year': data['year'], 'subscriptionUuid': data['subscriptionUuid'] } books.append(book) return jsonify(book), 201 @app.route('/api/books/', methods=['PUT']) def update_book(uuid): data = request.json book = next((b for b in books if b['uuid'] == str(uuid)), None) if not book: return jsonify({'error': 'Book not found'}), 404 book.update({ 'author': data['author'], 'subject': data['subject'], 'year': data['year'], 'subscriptionUuid': data['subscriptionUuid'] }) return jsonify(book), 200 @app.route('/api/books/', methods=['DELETE']) def delete_book(uuid): global books books = [b for b in books if b['uuid'] != str(uuid)] return '', 204 if __name__ == '__main__': app.run(host='0.0.0.0', port=5001)