from flask import Flask, jsonify, request import requests app = Flask(__name__) # набор данных докторов с их пациентами doctors_data = [ { 'id': 1, 'name': 'Doctor A', 'email': 'doctor.a@example.com', 'patients': [ {'id': 1, 'name': 'Patient A1', 'email': 'patient.a1@example.com'}, {'id': 2, 'name': 'Patient A2', 'email': 'patient.a2@example.com'}, ], }, { 'id': 2, 'name': 'Doctor B', 'email': 'doctor.b@example.com', 'patients': [ {'id': 3, 'name': 'Patient B1', 'email': 'patient.b1@example.com'}, {'id': 4, 'name': 'Patient B2', 'email': 'patient.b2@example.com'}, ], }, { 'id': 3, 'name': 'Doctor C', 'email': 'doctor.c@example.com', 'patients': [ {'id': 5, 'name': 'Patient C1', 'email': 'patient.c1@example.com'}, ], }, ] # URL для сервиса пациентов patients_service_url = "http://localhost/app2/patients" @app.route('/', methods=['GET']) def get_index(): return "это первый сервис" @app.route('/doctors', methods=['GET']) def get_doctors(): return jsonify(doctors_data) @app.route('/doctors', methods=['POST']) def create_doctor(): new_doctor = request.json # уникальный id для нового доктора new_doctor['id'] = len(doctors_data) + 1 new_doctor['patients'] = [] doctors_data.append(new_doctor) return jsonify(new_doctor), 201 @app.route('/doctors/', methods=['PUT']) def update_doctor(id): for doctor in doctors_data: if doctor['id'] == id: doctor.update(request.json) return jsonify(doctor), 200 return jsonify({'error': 'Доктор не найден'}), 404 @app.route('/doctors/', methods=['DELETE']) def delete_doctor(id): global doctors_data doctors_data = [doctor for doctor in doctors_data if doctor['id'] != id] return jsonify({'message': 'Доктор удален'}), 200 @app.route('/doctors//patients', methods=['GET']) def get_doctor_patients(id): for doctor in doctors_data: if doctor['id'] == id: return jsonify(doctor['patients']) return jsonify({'error': 'Доктор не найден'}), 404 @app.route('/doctors//patients', methods=['POST']) def create_doctor_patient(id): for doctor in doctors_data: if doctor['id'] == id: new_patient = request.json # назначить уникальный id новому пациенту new_patient['id'] = len(doctor['patients']) + 1 doctor['patients'].append(new_patient) requests.post(patients_service_url, json=new_patient) return jsonify(new_patient), 201 return jsonify({'error': 'Доктор не найден'}), 404 if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)